Visual Studio 强制 ASPNETCORE_ENVIRONMENT 值
Visual Studio forcing ASPNETCORE_ENVIRONMENT value
我正在尝试在 Visual Studio 2019 中将包管理器控制台与 EF Core 2.2 一起用于 运行 一个 Update-Database
命令。我通过根据 ASPNETCORE_ENVIRONMENT 的值更改连接字符串,在我的代码中针对特定数据库。
该代码通过使用
实现了这一点
public Startup(IHostinEnvironment env) {
if (env.IsDevelopment()) {
// set EF Core Dev connection string here
}
}
在项目属性调试面板中,我将值设置为“开发”,由于包管理器 Cosole 忽略了它并使用了环境变量,我输入了
PM> $Env:ASPNETCORE_ENVIRONMENT = "Development"
然后我通过输入
验证设置是否正确
PM> $Env:ASPNETCORE_ENVIRONMENT
并且正确 returns 发展.
但问题是如果我然后 运行
PM> Get-DbContext
它针对我的生产数据库而不是开发数据库,事实上,当再次输入 $Env:ASPNETCORE_ENVIRONMENT 时,它会产生 Production!
我的代码中没有任何内容可以动态更改此值。
更令人困惑的是,我过去完全没有问题地执行了这些步骤。
任何疑难解答想法将不胜感激。
我得出了一个令人不满意的结论,即仅仅重新启动 Visual Studio 2019 就解决了这个问题。我猜它或 PM 控制台中存在某种错误。
仅供参考,我使用的版本是 Windows 10 Pro 上的 16.6.3。
包管理器主机 5.6.0.6591
我正在尝试在 Visual Studio 2019 中将包管理器控制台与 EF Core 2.2 一起用于 运行 一个 Update-Database
命令。我通过根据 ASPNETCORE_ENVIRONMENT 的值更改连接字符串,在我的代码中针对特定数据库。
该代码通过使用
public Startup(IHostinEnvironment env) {
if (env.IsDevelopment()) {
// set EF Core Dev connection string here
}
}
在项目属性调试面板中,我将值设置为“开发”,由于包管理器 Cosole 忽略了它并使用了环境变量,我输入了
PM> $Env:ASPNETCORE_ENVIRONMENT = "Development"
然后我通过输入
验证设置是否正确PM> $Env:ASPNETCORE_ENVIRONMENT
并且正确 returns 发展.
但问题是如果我然后 运行
PM> Get-DbContext
它针对我的生产数据库而不是开发数据库,事实上,当再次输入 $Env:ASPNETCORE_ENVIRONMENT 时,它会产生 Production!
我的代码中没有任何内容可以动态更改此值。 更令人困惑的是,我过去完全没有问题地执行了这些步骤。
任何疑难解答想法将不胜感激。
我得出了一个令人不满意的结论,即仅仅重新启动 Visual Studio 2019 就解决了这个问题。我猜它或 PM 控制台中存在某种错误。
仅供参考,我使用的版本是 Windows 10 Pro 上的 16.6.3。 包管理器主机 5.6.0.6591