gpt4 book ai didi

asp.net - 混合 ASP.Net 和 .Net Standard 2.0 项目的发布版本构建时出现 SGEN 错误解决方案

转载 作者:行者123 更新时间:2023-12-04 15:18:23 28 4
gpt4 key购买 nike

我正在开发包含 3 个项目的 Visual Studio 2017 解决方案:

.Net Standard 2.0 中的两个类库(任何 CPU)
.Net Framework 4.6.1 中的一个 ASP.Net(任何 CPU)

如果我在调试中构建所有(任何 CPU),一切运行正常。
但是,如果我在发行版中构建全部(任何 CPU),则此错误会显示在输出窗口中:

3>SGEN : error : An attempt was made to load an assembly with an incorrect format: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\ref\netfx.force.conflicts.dll.



如何解决?

最佳答案

该错误源于解析 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>

关于asp.net - 混合 ASP.Net 和 .Net Standard 2.0 项目的发布版本构建时出现 SGEN 错误解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46345099/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com