c# - 从 .Net Framework 4.7 升级到 4.8 后使用 MSBuild 发布项目时出错

标签 c# asp.net .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>

你可以看到 <UseMerge>设置为 true这会将输出合并到单个程序集。
我尝试通过完全禁用合并来解决问题,但我想保持合并选项处于启用状态,因为它在之前的发布管道中以这种方式配置。任何帮助将不胜感激。

最佳答案

我已经通过安装 Microsoft.Aspnet.Merge NuGet 包解决了这个问题(不要忘记点击预览复选框)。

enter image description here

关于c# - 从 .Net Framework 4.7 升级到 4.8 后使用 MSBuild 发布项目时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59649095/

相关文章:

c# - 使用 RijndaelManaged 解密 ASP.NET 成员身份的加密密码

c# - 在桌面和 Web 应用程序之间交换数据的最佳实践

asp.net 配置文件提供程序

c# - 最小起订量返回不起作用

c# - .net cf TextBox 显示键盘焦点

c# - 有没有办法调试从 C# DllImport 调用的 c++ dll?

c# - List<string> 内存不足异常

c# - SQLite,在我的表中插入变量(c# 控制台应用程序)

c# - WPF 从子 ItemsControl 数据模板内部绑定(bind)到父 ItemsControl

android - 在 IOS 中使用框架阴影效果显示,但在 xamarin 中的 UWP 项目中则不使用