2012-09-26 31 views
1

我试图用“.NETFramework 4.0”作为目标框架编译项目。但我得到以下警告:由于主要引用而无法编译C#项目

主要参考“XXX”无法得到解决,因为它的框架组件的 间接依赖 “System.Runtime.Serialization,版本= 4.0.0.0,文化=中立, PublicKeyToken = b77a5c561934e089“,这在 当前目标框架中无法解决。 ” .NETFramework,版本= V4.0" 。要解决 此问题,请删除引用“Fdi”或将您的 应用程序重定向到包含 “System.Runtime.Serialization,Version = 4.0.0.0,Culture = neutral, PublicKeyToken = b77a5c561934e089”的框架版本。

回答

2

我发现早期的(但类似)的问题:Visual Studio 2010: Reference Assemblies Targeting Higher Framework Version

约翰内斯·鲁道夫发现MSDN上的论坛(http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/dfadfb34-5328-4c53-8274-931c6ae00836)这样的回答:

但是,很2级的解决方法。

选项1:

第一步:卸载引用项目针对.NET 2.0

第二步:右键点击卸载项目并选择编辑从上下文菜单中

第三步:添加<SpecificVersion>true</SpecificVersion>的参考。 下面是我的摄制解决方案的示例:

<ProjectReference Include="..\HighFX\HighFX.csproj"> 
<Project>{8DD71CAF-BEF7-40ED-9DD0-25033CD8009D}</Project> 
<Name>HighFX</Name> 
<SpecificVersion>true</SpecificVersion> 
</ProjectReference> 

第四步:重新加载项目。 现在,您应该能够在Visual Studio 2010中构建,但仍可能会有如下警告,但构建可能会成功。

警告1项目'XXX'不能被引用。引用的项目的目标是到一个更高的Framework版本(3.5)

选项2:

使用命令行工具CSC.EXE构建每个源文件,这不会阻止建设。

+0

谢谢,它也适用于我。 –