vin*_*inu 5 .net c# asp.net msbuild .net-4.8
我正在将一个 Asp.Net 网站项目从 4.7 升级到 .net framework 4.8。升级后,项目从visual studio成功构建,并且在本地机器上运行也没有任何问题。当使用 MSBuild 发布同一个项目时,我收到以下错误:
(AspNetMerge target) ->
aspnet_merge : error occurred: An error occurred when merging assemblies: Unresolved assembly reference not allowed: System.Net.Http.
使用的 MsBuild 命令是:
msbuild.exe "D:\Enterprise\Enterprise.sln" /nologo /nr:false /t:Build /p:DeployOnBuild=true /p:Configuration=Release /p:PublishProfile=VSO
此处引用的 VSO.pubxml 文件具有以下配置:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<publishUrl>..\..\Publish\Web</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
<PrecompileBeforePublish>True</PrecompileBeforePublish>
<EnableUpdateable>False</EnableUpdateable>
<DebugSymbols>False</DebugSymbols>
<WDPMergeOption>MergeAllOutputsToASingleAssembly</WDPMergeOption>
<UseMerge>True</UseMerge>
<SingleAssemblyName>MergedAssembly</SingleAssemblyName>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
您可以看到<UseMerge>设置为true将输出合并到单个程序集。我尝试通过完全禁用合并来解决问题,但我想保持合并选项处于启用状态,因为它在之前的发布管道中以这种方式配置。任何帮助将不胜感激。
System.Net.Http是一个给普通开发人员带来很多问题的库。在 NuGet 包更新或针对新的 .NET Framework 后,它会出现许多令人难以置信的问题。
不幸的是,没有解决所有这些问题的灵丹妙药。这取决于真正导致此错误的许多因素。
这很可能是配置文件的<dependencyAssemblies>部分。项目 .NET Framework 重定向后,存在无法使用旧版本的依赖项程序集解析的 NuGet 包。
使用以下工作流程在新的 .NET Framework 版本上重新定位您的项目:
update-package:)update-package -reinstall:)Warnings窗口中的某些记录,例如Found conflicts between different versions of the same dependent assembly. 双击这些记录并按Yes每个弹出窗口。现在,您的项目已正确地在新的 .NET Framework 版本上重新定位,并更新了所有依赖项。并且错误必须消失。
| 归档时间: |
|
| 查看次数: |
668 次 |
| 最近记录: |