【发布时间】:2019-02-01 05:36:27
【问题描述】:
我最近在使用 Visual Studio 时遇到了很多困难,但我就是无法解决这个问题。在尝试重建我的项目时,我得到:
错误 CS0433:“System.Core,版本=3.5.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”和“mscorlib,版本=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”中都存在“Func”类型'
似乎唯一可行的方法是手动添加对 csproj 文件的引用。
<Reference Include="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"/>
这给我留下了一个新错误:
错误 CS1703:已导入具有相同标识的多个程序集:'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll' 和 'C:\WINDOWS\Microsoft .Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'。删除重复引用之一。
现在项目中找不到 3.5.0.0 引用,但可以在对象浏览器中看到,但没有删除它的选项:
在 app.config 文件中,我还尝试将引用重定向到较新的版本:
<dependentAssembly>
<assemblyIdentity name="System.Core" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="3.5.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
这不会改变任何事情。
我很感激任何想法或意见,因为我已经搜索并为此苦苦挣扎了一个多星期。
【问题讨论】:
-
如果您只是尝试使用较新的版本而不是重定向怎么办?似乎在 3.5 和 4.0 之间将它从一个移到另一个。
-
另外,检查您的目标平台。看起来你想在 3.5 上构建一些 4.0 的东西
-
这些不仅仅是任何程序集。它们是 runtime 文件。不知何故,您的代码在某处引用了为 .NET 3.5 运行时构建的程序集。您应该用更新的版本替换它们 - .NET 4.0 于 2010 年问世。很可能该程序集的作者发布了更新版本,或者完全放弃了它
-
您是否使用过时的 Windows 工作流或 WPF 程序集?您是否使用旧的第三方库连接到远程服务? .NET 3.5 是添加了 WF、WPF 和 WCF 的 .NET 2.0 运行时。所有这些都在 .NET 4.0 及更高版本中升级,因此您应该能够找到更新的库
-
@John 我该怎么做?
标签: c# .net visual-studio