我有.NET Core 7 WEB API 项目。在那里,我有 3 个设置文件。更具体地说:
我想要实现的行为是:
当我运行:
dotnet publish -c QA -o deploy
并在 IIS 上托管应用程序时,它正在使用 appsettings.QA.json 文件。
发生了什么:
应用程序始终使用 appsettings.Production.json 作为默认配置。
我错过了什么吗?
您需要使用您要使用的 env 设置
DOTNET_ENVIRONMENT
环境变量。
SET DOTNET_ENVIRONMENT=QA
欲了解更多信息: 在 ASP.NET Core 中使用多个环境
您需要在项目根目录中正确命名配置文件
appsettings.json
(共享配置)appsettings.Development.json
(特定于开发的配置)appsettings.QA.json
(QA 特定配置)appsettings.Production.json
(生产特定配置)确保在
launchSettings.json
内为每个配置文件正确设置 ASPNETCORE_ENVIRONMENT
变量。
示例:
"profiles": {
"Development": {
"commandName": "Project",
"dotnetRunMessages": "true",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"QA": {
"commandName": "Project",
"dotnetRunMessages": "true",
"launchBrowser": true,
"applicationUrl": "https://localhost:5003;http://localhost:5002",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "QA"
}
},
"Production": {
"commandName": "Project",
"dotnetRunMessages": "true",
"launchBrowser": true,
"applicationUrl": "https://localhost:5005;http://localhost:5004",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Production"
}
}
}
当您运行
dotnet publish -c QA -o deploy
时,它将使用QA
环境。