发现了一种在 Visual Studio 中构建的三步方法,用于发布特定于环境的应用设置文件(Windows、PowerShell)。
- 应用设置.json
- appsettings.Development.json
- appsettings.Staging.json
- appsettings.Production.json
这种方法将发布
- appsettings.json 和
- appsettings.$(ASPNETCORE_ENVIRONMENT).json。
步骤 1. 更新 csproj:
<!-- App Settings -->
<ItemGroup>
<Content Remove="appsettings.json" />
<Content Remove="appsettings.*.json" />
</ItemGroup>
<ItemGroup>
<Content Include="appsettings.json" CopyToOutputDirectory="Always" />
<Content Include="appsettings.$(ASPNETCORE_ENVIRONMENT).json" DependentUpon="appsettings.json" CopyToOutputDirectory="Always" />
</ItemGroup>
步骤 2. 在 PowerShell 中设置环境变量:
# Read
[Environment]::GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "User")
# Output: empty string if not set or 'Staging' in my case
# Set environment variable "User" or "Machine" level
[Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Staging", "User")
第 3 步。然后关闭并重新打开 Visual Studio 解决方案,以使 Visual Studio 能够查看环境变量并相应地重新加载项目结构。
- 现在 appsettings.json 是一个父文件,而 appsettings.Staging.json 是一个嵌套文件。
- 如果您设置另一个环境(例如“生产”),然后关闭 Visual Studio 并重新打开您的解决方案,那么您将 appsettings.json 作为父文件,将 appsettings.Production.json 作为嵌套文件。
最后一步。运行发布。
注意: 发布配置文件环境变量不影响发布配置。此方法使用 PowerShell 设置环境变量并启用特定于环境的发布。有关环境变量的更多详细信息,请参阅链接。