我最近在Visual Studio上遇到了很多麻烦,但是我无法解决这个问题。尝试重建我的项目时,我得到:
错误CS0433:类型'Func'同时存在于'System.Core,版本= 3.5.0.0,区域性=中性,PublicKeyToken = b77a5c561934e089'和'mscorlib,版本= 4.0.0.0,区域性=中性,PublicKeyToken = b77a5c561934e089 '
唯一可行的方法是手动添加对csproj文件的引用。
<Reference Include="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"/>
这给我一个新的错误:
错误CS1703:已导入具有相同标识的多个程序集:“ C:\ Program Files(x86)\参考程序集\ 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>
什么都不会改变。
我一直在寻找和努力解决这个问题超过一个星期,对此我将不胜感激。
答案 0 :(得分:1)
弄清楚这个问题真是太痛苦了。经过数小时的努力,终于找到了system.core.dll的“ 3.5”版本问题。 因此,我将“ system.core.dll”的“ 4.0 ..” 版本从Program Files(X86)文件夹复制到了我的Application的References或Bin文件夹中。对我来说,它位于(C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5)下。 另外,如果需要,请按照原始问题中的说明手动添加对csproj文件的引用。 希望能帮助到你。叹气:)
答案 1 :(得分:1)
打开 windows 控制面板 > 程序和功能 > 打开或关闭 windows 功能,并禁用 .Net Framework 3.5。 video
这种方式对我有用。
答案 2 :(得分:0)
两种方式。 1.使用“使用xxx = .....” 2.编写一个类包装器以避免引用。
答案 3 :(得分:0)
您可以定义自己的代表:
public delegate T MyFunc<T1, T>(T1 item);
public delegate T MyFunc<T1, T2, T>(T1 item1, T2 item2);
...