为 asp.net 核心 3.1 项目禁用 web.config 生成

disable web.config generation for asp.net core 3.1 project

我的 ASP.NET Core 3.1 项目的 dotnet publish 命令在我的 publish/ 目录中创建了一个 web.config 文件。我不希望生成此文件(或至少复制到该文件夹​​)- 它永远不会与 IIS 一起使用。

当我查看详细程度增加的命令输出时,我发现了以下文本:

   Target "_TransformWebConfig" in file "C:\Program Files\dotnet\sdk.1.200\Sdks\Microsoft.NET.Sdk.Publish\targets\TransformTargets\Microsoft.NET.Sdk.Publish.TransformFiles.targets" from project "C:\repos\reportweb\reportweb\reportweb.csproj" (target "_AspNetCoreProjectSystemPostPublish" depends on it):
       Using "TransformWebConfig" task from assembly "C:\Program Files\dotnet\sdk.1.200\Sdks\Microsoft.NET.Sdk.Publish\targets\..\tools\netcoreapp2.1\Microsoft.NET.Sdk.Publish.Tasks.dll".
       Task "TransformWebConfig"
         Configuring the following project for use with IIS: 'C:\repos\reportweb\reportweb\bin\Release\netcoreapp3.1\linux-x64\publish\'
         Updating web.config at 'C:\repos\reportweb\reportweb\bin\Release\netcoreapp3.1\linux-x64\publish\web.config'
         Configuring project completed successfully
       Done executing task "TransformWebConfig".
   Done building target "_TransformWebConfig" in project "reportweb.csproj".

是否可以通过某种方式配置我的项目以跳过 _TransformWebConfig 目标或 TransformWebConfig 任务 - 或者使用其他方式跳过生成?我知道我可以让 MSBuild 之后删除文件,但禁用此功能对我来说似乎不那么 hacky

您可以使用 IsWebConfigTransformDisabled MSBuild 属性 控制它:

To prevent transformations of the web.config file, set the MSBuild property $(IsWebConfigTransformDisabled):

dotnet publish /p:IsWebConfigTransformDisabled=true

因为这是一个 MSBuild 属性,您可以在 .csproj 中设置它,而不是将其作为命令行参数传递:

<PropertyGroup>
    <IsWebConfigTransformDisabled>true</IsWebConfigTransformDisabled>
</PropertyGroup>