首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在本地开发环境和CI/CD管道中不进行任何配置而运行.NET核心项目?

如何在本地开发环境和CI/CD管道中不进行任何配置而运行.NET核心项目?
EN

Stack Overflow用户
提问于 2018-10-08 13:54:26
回答 1查看 116关注 0票数 0

首先让我给出一些背景

我们有自己的VPS,所以我们不希望使用Azure来托管我们的web应用程序。

通过在VPS上为.NET核心项目安装代理,我们已经成功地创建了到VPS的CI/CD管道。

我们使用Azure DevOps (以前称为VSTS)在GIT中托管代码,并处理积压日志和CI/CD管道。

我们有几个.NET框架项目,在这些项目中,我们使用XTD转换来转换交付/部署中的web.config文件,使其具有正确的连接字符串和其他配置属性。

这样就可以从远程回购中提取主分支,并让它在以前未使用的(此应用程序)开发环境上工作几秒钟,而不需要任何配置。

现在来回答我的问题

我们已经为其设置了CI/CD管道的.NET核心项目的主分支为其不断交付的暂存环境保存json文件中的配置。当开发人员提取主分支时,他/她首先需要配置这些分支,以套件本地调试环境。

这对我们来说是一种不可取的情况。

我们如何做到这样,如果我们使用.NET核心,我们可以使用一种机制,允许我们在本地调试环境上工作,而不需要在CI/CD管道中配置

我们已经试过什么了?

我们已经发现,对于不同的环境,比如appsettings.json,以及程序类的静态方法CreateWebhost,我们可以调用多个版本的CreateWebhost文件。但是,我们如何能够自动化这是我们一直无法弄清楚或找到文档的东西。

EN

回答 1

Stack Overflow用户

发布于 2018-10-10 04:24:00

好吧,下面是一些你今天可以利用的选择。(我确信还有更多的选择/方法)

选项将主分支配置为有连接字符串到DEV数据库(或最低环境)的appsetting.development.json从appsettings.json中删除任何连接字符串

相应地合并主。在每个后端服务器上为连接字符串创建环境变量;ex,称为ConnectionStrings:cartDB的系统环境变量,与数据库的连接字符串用于后端服务器所使用的环境。其结果是,当使用开发作为环境变量运行时,它将能够连接到每个人都可以访问的数据库。但是,由于所有其他web服务器都有带有连接字符串的环境变量,它们将具有最高级别的优先级,因此将是在调用以下内容时设置的值

代码语言:javascript
复制
string connectionString = Configuration.GetConnectionString("cartDB");

这将满足您上面提到的要求。

选项B:配置主分支,使appsetting.development.json具有连接字符串到DEV数据库(或最低环境),从appsettings.json Place appsetting.staging.json、appsettings.prod.json中删除任何连接字符串,并在web服务器中设置环境名称变量。/不是最好的选择/建议反对。(值得一提的是,自从我看到这种情况发生以来,我们都看到了)

选项C将appsetting.staging.json、appsettings.prod.json添加到源代码管理中,并使用令牌代替连接字符串值。然后,利用某种类型的Tokenization,用适当的值替换这些令牌。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52703850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档