使用 dotnet publish 命令发布时无法排除 web.config 文件

Can't exclude web.config file while publishing using dotnet publish command

我有一个 dot net core 3.1 项目。当我 运行 我的应用程序使用 IIS 时,它会通过添加环境 ASPNETCORE_ENVIRONMENT 自动创建一个 web.config 文件” =“开发”。因为我正在将我的应用程序部署到 Azure 并通过应用程序设置管理配置,所以我不需要发布 web.config 文件在我的工件文件夹中。此外,添加的 ASPNETCORE_ENVIRONMENT 也会导致 ASPNETCORE_ENVIRONMENT 从 Staging/Production 更改为开发。我想排除 web.config 发布时。我尝试了网上建议的不同方法,但没有任何效果:

    <ItemGroup>
        <Content Remove="web.config" />
    </ItemGroup>

    <ItemGroup>
        <Content Update="web.config">
            <CopyToOutputDirectory>Never</CopyToOutputDirectory>
        </Content>
    </ItemGroup>

    <ItemGroup>
        <Content Update="web.config">
            <CopyToPublishDirectory>Never</CopyToPublishDirectory>
        </Content>
    </ItemGroup>

但它总是在 dotnet publish[=25 的发布目录中包含 web.config 文件=] 命令。 我在这里遗漏了什么吗?

根据此 github issue,您应该在 .csproj

中添加以下部分
<PropertyGroup>
  <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
</PropertyGroup>

@samrat 在他的评论中写的完整解决方案是在 Application.csproj 中添加以下内容:

  <ItemGroup>
    <Content Update="web.config;" CopyToPublishDirectory="Never" />
  </ItemGroup>

  <PropertyGroup>
    <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
  </PropertyGroup>