ASP.NET Core-Anwendungsfreigabebefehl:
dotnet publish [<PROJECT>] [-f|--framework] [-r|--runtime] [-o|--output] [-c|--configuration] [--version-suffix] [-v|--verbosity] [-h|--help]
Beispielbefehl veröffentlichen (im Verzeichnis bin/release/netcoreapp1.1/publish
generiert):
dotnet publish -c release
oben Der Befehl gibt nicht an, dass EnvironmentName
veröffentlicht werden soll. Was bedeutet das? Beispielsweise sind die appsettings.json
-Konfiguration in der ASP.NET Core-Anwendung, die Testumgebung und die Produktionsumgebungskonfiguration unterschiedlich (z. B. die Datenbankverbindungszeichenfolge). Wenn wir den obigen Freigabebefehl verwenden, müssen wir auch die appsettings.json
Wenn die Datei in Zukunft geändert werden muss, muss sie erneut veröffentlicht und aktualisiert werden, was sehr mühsam ist.
Die Lösung des oben genannten Problems ist sehr einfach. Geben Sie die Umgebungsvariable ASPNETCORE_ENVIRONMENT
des Entwicklungscomputers oder Servers an, nachdem Sie beim Ausführen dotnet *.dll
das Programm ASP.NET Core gestartet haben lädt dies automatisch Die appsettings.*.json
-Datei, die der Umgebungsvariablen entspricht, z. B. appsettings.Production.json
.
Wenn wir VS 2017 F5 zum Debuggen des Projekts verwenden, wird die Umgebungsvariable ASPNETCORE_ENVIRONMENT
standardmäßig festgelegt, z. B. launchSettings.json
im ASP. NET Core-Anwendung. Beispielkonfiguration:
"profiles": {"IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "launchUrl": "api/values", "environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development" }},"AspNetCore.Samples": { "commandName": "Project", "launchBrowser": true, "launchUrl": "api/values", "environmentVariables": {"ASPNETCORE_ENVIRONMENT": "Development" }, "applicationUrl": "http://localhost:59522"}}
Startup
Beispielkonfiguration:
public Startup(IHostingEnvironment env) {var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) .AddEnvironmentVariables(); Configuration = builder.Build(); }
Weil in der obigen Konfiguration ASPNETCORE_ENVIRONMENT
ist auf Development
eingestellt, wir verwenden VS 2017 F5 zum Debuggen des Projekts und die appsettings.Development.json
-Konfigurationsdatei unter dem Projekt wird geladen und verwendet. Wenn diese Datei nicht vorhanden ist, verwendet ASP.NET Core appsettings.json
Konfigurationsdatei standardmäßig.
Wie legen wir dann die Umgebungsvariable ASPNETCORE_ENVIRONMENT
auf dem Server fest? Es ist ganz einfach: Geben Sie einfach einen Befehl ein.
Befehlszeile:
>setx ASPNETCORE_ENVIRONMENT "Development"SUCCESS: Specified value was saved.
oder (erfordert Administratorrechte)
>setx ASPNETCORE_ENVIRONMENT "Development" /MSUCCESS: Specified value was saved.
PowerShell
Befehl:
$Env:ASPNETCORE_ENVIRONMENT = "Prodction"
Nachdem Sie den Umgebungsbefehl in Windows festgelegt haben, müssen Sie eine Befehlszeile erneut öffnen dotnet *.dll
, um das Projekt zu starten, damit es wirksam wird.
Befehlszeile:
export ASPNETCORE_ENVIRONMENT=development
dotnet *.dll
Beim Starten des Projekts können wir den aktuellen Stand sehen von Hosting environment
, um zu überprüfen, ob es korrekt ist, Beispiel:
> dotnet AspNetCore.Samples.dllHosting environment: ProdtctionContent root path: C:\Users\yuezh\Desktop\Demo\AspNetCore.SamplesNow listening on: http://*:5003Application started. Press Ctrl+C to shut down.
Referenz:
dotnet-publish
Arbeiten mit mehreren Umgebungen
So richten Sie die Hosting-Umgebung in ASP.NET Core ein
Das obige ist der detaillierte Inhalt vonBeispiel für einen ASP.NET Core-Anwendungsveröffentlichungsbefehl. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!