【问题标题】:Converted my c++ mixed mode vs2008 project to vs2010, could not locate the assembly将我的c++混合模式vs2008项目转换为vs2010,找不到程序集
【发布时间】:2011-11-24 08:12:06
【问题描述】:

将我的 vs2008 c++ 混合模式项目转换为 vs2010 后,出现此错误。

警告 MSB3245:无法解析此引用。找不到程序集“XYZ, Version=3.0.0.0,....

Vs2008 不关心正确的版本,是否可以从项目文件中的引用中删除版本属性(不能从 GUI 中删除,但如果我在记事本中编辑似乎可以工作)? 还是有更好的解决方案?

现在我们需要在重建程序集 XYZ 时更新引用。

<Reference Include="XYZ, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null">
  <HintPath>..\XYZ.dll</HintPath>
  <CopyLocalSatelliteAssemblies>true</CopyLocalSatelliteAssemblies>
  <ReferenceOutputAssembly>true</ReferenceOutputAssembly>
</Reference>

【问题讨论】:

  • 将其添加到 cpp 文件中是否更好? #使用“..\XYZ.dll”

标签: .net visual-studio-2010 visual-studio-2008 reference clr


【解决方案1】:

尝试添加“SpecificVersion”节点,使引用如下所示:

<Reference Include="XYZ, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null"> 
  <HintPath>..\XYZ.dll</HintPath>
  <SpecificVersion>false</SpecificVersion>
  <CopyLocalSatelliteAssemblies>true</CopyLocalSatelliteAssemblies> 
  <ReferenceOutputAssembly>true</ReferenceOutputAssembly> 
</Reference>

虽然它没有显示在属性页中的 vs2010 UI 上,但 MSBuild 似乎可以识别此设置并在其设置为 false 时接受所引用 dll 的任何版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 2010-12-24
    • 2012-06-03
    • 1970-01-01
    • 2011-09-30
    • 2011-11-23
    • 1970-01-01
    相关资源
    最近更新 更多