我正在尝试使用目标框架将项目编译为“.NETFramework 4.0”。但我得到以下警告:
主要参考“XXX”无法解析,因为它有一个 间接依赖于框架程序集 “System.Runtime.Serialization,Version = 4.0.0.0,Culture = neutral, PublicKeyToken = b77a5c561934e089“无法解决的问题 目前的目标框架。 ” .NETFramework,版本= V4.0" 。解决 这个问题,要么删除引用“Fdi”或重新定位你的 应用程序包含的框架版本 “System.Runtime.Serialization,Version = 4.0.0.0,Culture = neutral, 公钥= b77a5c561934e089" 。
答案 0 :(得分:2)
我发现了一个较早(但相似)的问题:Visual Studio 2010: Reference Assemblies Targeting Higher Framework Version
Johannes Rudolph在MSDN的论坛(http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/dfadfb34-5328-4c53-8274-931c6ae00836)上找到了这个答案:
然而,有2个解决方法。
选项1:
步骤1:卸载面向.NET 2.0的引用项目
步骤2:右键单击已卸载的项目,然后从上下文菜单中选择编辑
第3步:将
<SpecificVersion>true</SpecificVersion>
添加到参考中。 以下是我的repro解决方案的示例:
<ProjectReference Include="..\HighFX\HighFX.csproj">
<Project>{8DD71CAF-BEF7-40ED-9DD0-25033CD8009D}</Project>
<Name>HighFX</Name>
<SpecificVersion>true</SpecificVersion>
</ProjectReference>
步骤4:重新加载项目。 现在您应该能够在Visual Studio 2010中构建,可能仍然会出现如下警告,但构建可以成功。
警告1无法引用项目“XXX”。引用的项目针对更高的框架版本(3.5)
选项2:
使用命令行工具csc.exe构建每个源文件,这不会阻止构建。