Es wurde ein dreistufiger Build in Visual Studio-Ansatz zum Veröffentlichen von umgebungsspezifischen Appsetting-Dateien (Windows, PowerShell) entdeckt.
- appsettings.json
- appsettings.Development.json
- appsettings.Staging.json
- appsettings.Production.json
Dieser Ansatz wird veröffentlicht
- appsettings.json und
- appsettings. $ (ASPNETCORE_ENVIRONMENT) .json.
Schritt 1. Aktualisieren Sie 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>
Schritt 2. Legen Sie eine Umgebungsvariable in PowerShell fest:
# 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")
Schritt 3. Schließen Sie dann die Visual Studio-Lösung und öffnen Sie sie erneut, damit Visual Studio die Umgebungsvariable anzeigen und die Projektstruktur entsprechend neu laden kann.
- Jetzt ist appsettings.json ein übergeordnetes Element und appsettings.Staging.json ist eine verschachtelte Datei.
- Wenn Sie eine andere Umgebung festlegen (z. B. "Produktion") und dann Visual Studio schließen und Ihre Lösung erneut öffnen, wird appsettings.json als übergeordnetes Element und appsettings.Production.json als verschachtelte Datei angezeigt.
Letzter Schritt . Führen Sie die Veröffentlichung aus.
Hinweis: Verlagsprofil Umgebungsvariablen beeinflussen nicht Konfiguration zu veröffentlichen. Dieser Ansatz verwendet PowerShell zum Festlegen einer Umgebungsvariablen und ermöglicht das umgebungsspezifische Veröffentlichen. Weitere Informationen zu Umgebungsvariablen finden Sie unter dem Link .