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

Msbuild 如何从发布中排除某些appsettings文件,msbuild,web-deployment,asp.net-core-2.0,web-deployment-project,coreclr,Msbuild,Web Deployment,Asp.net Core 2.0,Web Deployment Project,Coreclr,我有asp.NETCore2应用程序。基于此,我为我的开发环境创建了.pubxml文件。我正在使用web部署(远程代理)将web包部署到目标web服务器。在安装了jenkins的构建服务器上,我运行以下命令来构建和部署 D:\Jenkins\myproject\workspace\myapplication\Src\Api>dotnet publish Api.csproj /p:PublishProfile=development.pubxml 它成功地将应用程序构建并部署到目标web

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

D:\Jenkins\myproject\workspace\myapplication\Src\Api>dotnet publish Api.csproj /p:PublishProfile=development.pubxml
它成功地将应用程序构建并部署到目标web服务器

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

如何仅包括特定于环境的appsettings文件?(在本例中,我希望部署
appsettings.json
appsettings.development.json
,但不部署其他2个文件)

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

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

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

为我工作。我刚刚添加了忽略非特定环境文件。