如何从发布中排除某些appsettings文件

时间:2018-05-18 19:27:56

标签: msbuild web-deployment asp.net-core-2.0 web-deployment-project coreclr

我有asp.net core 2应用程序。基于documentation我为我的开发环境创建了.pubxml文件。我正在使用Web部署(远程代理)将Web包部署到目标Web服务器。在我们的构建服务器上安装了jenkins,我运行以下命令来构建&部署

D:\Jenkins\myproject\workspace\myapplication\Src\Api>dotnet publish Api.csproj /p:PublishProfile=development.pubxml

它成功构建并部署应用程序到目标Web服务器。

但是,我的应用程序有多个appsettings文件特定于每个环境。例如appsettings.jsonappsettings.development.jsonappsettings.staging.jsonappsettings.production.json部署过程将所有appsettings文件部署到Web服务器。 (在本例中为开发Web服务器)

我如何只包含特定于环境的appsettings文件? (在这种情况下,我想部署appsettings.jsonappsettings.development.json而不是其他2个文件

1 个答案:

答案 0 :(得分:3)

您可以将<ItemGroup>个定义添加到包含文件更新语句的发布配置文件(.pubxml文件)中。

例如,如果发布配置文件根据环境命名为Production.pubxml / Staging.pubxml,则可以将此项组添加到根<Project> xml节点:

<ItemGroup>
  <Content Update="appsettings.*.json" CopyToPublishDirectory="Never" />
  <Content Update="appsettings.$(MSBuildThisFileName).json" CopyToPublishDirectory="PreserveNewest" />
</ItemGroup>