我有一个新的asp.net V5应用程序,它实际上只是一个静态的角度站点,我正在尝试进行相当于web.config的转换。我的app.js文件定义了一个常量,即serviceUrl,它指向我们的api(不在同一网站中)的url
我已经使用了gulp-replacement,并为我们的每个构建目标创建了任务,这些任务成功地替换了需要替换的单个字符串。
我遇到的问题是,我需要能够根据选择的构建配置更改服务url,这样我们就可以自动部署等,而不必为每个不同的目标更改该url。(即dev转到devapi.xxx.com,release转到https://api.xxx.com等等)
我已经找到了预发布脚本部分,但它似乎不允许我根据配置进行具体说明。配置部分似乎不允许我指定将运行的脚本。
所以我的问题是,如何执行预发布步骤,根据配置在上下文中查找和替换该字符串?
您应该了解使用多个环境。
基本上,你的appsettings.json
就是你想要的。在你的Startup.cs
中,你应该有一条看起来像这样的线:
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
默认情况下,在Visual Studio中,ASPNET_ENV
环境变量将设置为Development
。当不由Visual Studio运行时,它将默认为Production
。
因此,根据定义,在生产中运行应用程序时,它将自动用appsettings.Production.json
覆盖appsettings.json
值。
这个文件当然是可选的,可以由你的IT部门保存,里面有所有珍贵的密码
但是,如果您正在存储密码和连接字符串,我强烈建议您阅读有关应用程序秘密的安全存储的内容。