我有一个新的asp.net V5应用程序,它实际上只是一个静态角度站点,我正在尝试做相当于web.config的转换。我的app.js文件有一个常量定义,即serviceUrl,它指向我们api的url(不在同一个站点中)
我已经为每个构建目标使用了gulp-replace和创建的任务,这些目标成功地替换了需要替换的单个字符串。
我遇到的问题是我需要能够根据所选的构建配置更改该服务URL,以便我们可以自动部署等,而不必为每个不同的目标更改该URL。 (即dev转到devapi.xxx.com并发布到https://api.xxx.com等。)
我找到了preublish脚本部分,但它似乎不允许我根据配置进行特定。配置部分似乎不允许我指定将运行的脚本。
所以我的问题是,如何进行预发布步骤,根据配置在上下文中查找并替换该字符串?
答案 0 :(得分:0)
你应该看看Working with Multiple Environments。
基本上,您的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.json
值appsettings.Production.json
。
该文件当然是可选的,可以由您的IT部门保存,其中包含所有宝贵的密码。
如果您要存储密码和连接字符串,我强烈建议您阅读Safe Storage of Application Secrets。