Configuration transformations in ASP.NET MVC 6

本文关键字:MVC NET ASP transformations in Configuration | 更新日期: 2023-09-27 18:27:46

我们正在尝试设置一个ASP.NET MVC 6 web应用程序。在ASP.NET的早期版本中,我们总是对Web.config使用转换。例如,我们通过创建Web.Production.config来实现这一点。在这种情况下,Production与项目/解决方案的构建配置的名称匹配,并作为对原始Web.config的转换应用。

在新版本中,配置是使用JSON完成的。然而,这种自动转换已经不存在了。在ASP.NET MVC 6中实现相同功能的最佳方法是什么?

Configuration transformations in ASP.NET MVC 6

不再有"自动转换"。

配置的工作方式有点像jQuery中的"扩展"属性。

如果在两种不同的配置中使用两个参数(appsettings.jsonappsettings.Production.json),则后者将优先于

所以,让我们看看我们是否能解决您的问题。

以下是我的appsettings.json的样子:

{
   "myValue" : 1
}

下面是appsettings.Production.json的样子:

{
   "myValue" : 3
}

第一个文件将包含在您的构建中,并将由.NET自动用于获取您的配置。那么,它是如何选择"生产"的呢?

答案可以在Startup.cs构造函数中找到:

 // Set up configuration sources.
 var builder = new ConfigurationBuilder()
     .AddJsonFile("appsettings.json")
     .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);

当然,您可以为配置文件选择任何变量,或者直接从环境变量或任何其他源加载它们。

旁注

"环境变量"的名称似乎是必须为每个人全局设置的,但没有什么可以阻止您在调用脚本之前通过内联设置它们来仅为当前进程设置它们。

因此,dnx web将在您的机器上的生产中自动启动您的应用程序,但使用Visual Studio启动它(Visual Studio将自动将环境设置为Development)将在DEV模式下启动它。