【发布时间】:2020-01-08 15:32:29
【问题描述】:
我正在将一个 Asp.Net 网站项目从 4.7 升级到 .net 框架 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>
您可以看到<UseMerge> 设置为true,这会将输出合并到单个程序集。
我尝试通过完全禁用合并来解决问题,但我想保持启用合并选项,因为它是在之前的发布管道中以这种方式配置的。任何帮助将不胜感激。
【问题讨论】:
-
您引用的是哪个版本的 system.net.http?您的项目中是否有对 system.net.http 的 nuget 引用?
标签: c# asp.net .net msbuild .net-4.8