我有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.json
, appsettings.development.json
, appsettings.staging.json
和 appsettings.production.json
部署过程将所有 appsettings 文件部署到 Web 服务器。 (在这种情况下开发网络服务器)我如何只包含特定于环境的 appsettings 文件? (在这种情况下,我想部署
appsettings.json
、 appsettings.development.json
但不是其他 2 个文件)
最佳答案
您可以添加 <ItemGroup>
包含文件更新语句的发布配置文件(.pubxml 文件)的定义。
例如,如果发布配置文件名为 Production.pubxml
/Staging.pubxml
根据环境,可以将此项目组添加到根<Project>
xml节点:
<ItemGroup>
<Content Update="appsettings.*.json" CopyToPublishDirectory="Never" />
<Content Update="appsettings.$(MSBuildThisFileName).json" CopyToPublishDirectory="PreserveNewest" />
</ItemGroup>
关于msbuild - 如何从发布中排除某些 appsettings 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50418071/