在我将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>
尝试添加一个"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似乎认识到这个设置,并接受任何版本的引用dll时,它设置为false。