由于主要参考,无法编译C#项目

时间:2012-09-26 12:54:21

标签: visual-studio-2010 c#-4.0

我正在尝试使用目标框架将项目编译为“.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" 。

1 个答案:

答案 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构建每个源文件,这不会阻止构建。