2

我有一个新的 asp.net V5 应用程序,它实际上只是一个静态角度站点,我正在尝试进行与 web.config 转换等效的操作。我的 app.js 文件定义了一个常量,即 serviceUrl,它指向我们 api 的 url(不在同一个站点中)

我已经使用 gulp-replace 并为我们的每个构建目标创建了成功替换需要替换的单个字符串的任务。

我遇到的问题是我需要能够根据选择的构建配置更改该服务 url,以便我们可以自动部署等,而不必为每个不同的目标更改该 url。(即 dev 去 devapi.xxx.com 和 release 去https://api.xxx.com等)

我找到了 prepublish scripts 部分,但它似乎不允许我根据配置进行具体说明。配置部分似乎不允许我指定将运行的脚本。

所以我的问题是,如何执行基于配置在上下文中查找和替换该字符串的预发布步骤?

4

1 回答 1

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 部门保存,其中包含所有宝贵的密码。

但是,如果您要存储密码和连接字符串,我强烈建议您阅读有关安全存储应用程序机密的内容。

于 2015-12-16T20:51:28.600 回答