我正在开发一个包含3个项目的Visual Studio 2017解决方案:
.Net Standard 2.0(任何CPU)中的两个类库
.Net Framework 4.6.1(任何CPU)中的一个ASP.Net
如果我在调试中构建所有内容(任何CPU),一切运行正常 但是如果我在Release(任何CPU)中构建所有内容,则在输出窗口中显示此错误:
3> SGEN:错误:尝试加载格式不正确的程序集:C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ MSBuild \ Microsoft \ Microsoft.NET.Build.Extensions \ net461 \ REF \ netfx.force.conflicts.dll。
如何解决?
答案 0 :(得分:4)
错误源于解析dll时NETStandard和NuGet库之间的混淆。把它放到你失败的项目的.csproj文件中(卸载项目,编辑.csproj文件):
<Target Name="ReplaceNetFxNetStandardRefWithLib" AfterTargets="ImplicitlyExpandNETStandardFacades">
<ItemGroup>
<Reference Remove="@(_NETStandardLibraryNETFrameworkReference)" Condition="'%(FileName)' != 'netfx.force.conflicts'" />
<Reference Remove="@(_NETStandardLibraryNETFrameworkReference)" Condition="'%(FileName)' != 'System.Configuration.ConfigurationManager'" />
<Reference Include="@(_NETStandardLibraryNETFrameworkLib)">
<Private>true</Private>
</Reference>
</ItemGroup>
</Target>
<Target Name="RemoveNetFxForceConflicts" AfterTargets="ResolveAssemblyReferences">
<ItemGroup>
<ReferencePath Remove="@(ReferencePath)" Condition="'%(FileName)' == 'netfx.force.conflicts'" />
<ReferencePath Remove="@(ReferencePath)" Condition="'%(FileName)' == 'System.Configuration.ConfigurationManager'" />
</ItemGroup>
</Target>
答案 1 :(得分:0)
在我的例子中,这个错误是由于项目中安装的包不正确而报告的。虽然卸载了安装错误的包还是报错,解决方法是