【问题标题】:Can't exclude web.config file while publishing using dotnet publish command使用 dotnet publish 命令发布时无法排除 web.config 文件
【发布时间】:2021-07-21 01:44:21
【问题描述】:

我有一个 dot net core 3.1 项目。当我使用 IIS 运行我的应用程序时,它会通过添加环境 ASPNETCORE_ENVIRONMENT" = "Development" 自动创建一个 web.config 文件。因为我正在将我的应用程序部署到 Azure 并管理配置通过应用程序设置,我不需要在我的工件文件夹中发布 web.config 文件。此外,添加的 ASPNETCORE_ENVIRONMENT 会导致将 ASPNETCORE_ENVIRONMENT 从 Staging/Production 更改为 Development也。我想在发布时排除 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 命令的发布目录中包含 web.config 文件。 我在这里有什么遗漏吗?

【问题讨论】:

    标签: .net-core azure-devops msbuild


    【解决方案1】:

    根据这个github issue,你应该在.csproj中添加以下部分

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

    【讨论】:

    • 谢谢@GoodboY,它解决了我的问题!对于 web.config 文件,它必须与 Never 一起使用。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-19
      • 1970-01-01
      • 2019-01-10
      • 1970-01-01
      • 2019-07-27
      相关资源
      最近更新 更多