首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换后使安装包可供下载

转换后使安装包可供下载
EN

Stack Overflow用户
提问于 2020-05-04 18:22:52
回答 2查看 49关注 0票数 0

我在Azure Devops中有一个发布管道。它有3个阶段。

我的构建创建了一个带有web部署包的工件。

在第1阶段,它将部署到运行Azure代理的本地计算机上的IIS。这很好用。我还对连接字符串进行了变量转换。

下一阶段是部署到Pre Prod。但是这台机器对我来说不可用,所以实际的部署是通过电子邮件/FTP将安装包发送给客户来完成的。因此,我需要的是运行一个转换,并使WebDeploy.zip文件可供我下载。

换句话说:我希望能够下载2个具有正确转换设置的包。PreProd.zip和Prod.zip

阶段3类似于阶段2,但具有Prod变量。

EN

回答 2

Stack Overflow用户

发布于 2020-05-04 19:50:08

我不确定你的应用程序和appsettings.json是什么样子。但是您可以一次为所有env准备一个包。使用检查部分JSON配置提供程序here。然后,您只需设置(或要求设置) ASPNETCORE_ENVIRONMENT环境变量。

所以你需要三个文件:

  • appsettings.dev.json
  • appsettings.preprod.json
  • appsettings.prod.json

我不知道你是如何解决转换问题的,但是你可以使用token replace task来解决这个问题:

您的preprod配置可能如下所示:

代码语言:javascript
复制
{
  "ConnectionStrings": {
    "BloggingDatabase": "#{Preprod.ConnectionString}#"
  },
}

和你的prod文件:

代码语言:javascript
复制
{
  "ConnectionStrings": {
    "BloggingDatabase": "#{Prod.ConnectionString}#"
  },
}

现在,如果您在流水线中添加PreprodConnectionStringProd.ConnectionString变量,您将得到token replace with variables values。通过这种方式,您可以在所有环境中重用相同的包。

编辑:

您还可以考虑使用Secure Files。请同时检查DownloadSecureFile任务。

编辑

另一种选择是JSON variable substitution,它类似于令牌替换,但在部署之前完成,因此包含秘密的文件不会存储为工件。

票数 0
EN

Stack Overflow用户

发布于 2020-05-05 14:44:29

对于web部署包,有xx.SetParameters.xml文件存储了所需的值,因此您可以在这些阶段更新此文件,然后通过FTP/SSH/Email等方式将所需的文件发送到目标服务器。

Configuring Parameters for Web Package Deployment

另一方面,对于ASP.NET核心项目,设置每个to环境变量的文件是更好、更简单的方法。(Krzysztof的回复)

更新1:

有一些扩展可用于转换。https://marketplace.visualstudio.com/search?term=transform&target=AzureDevOps&category=All%20categories&sortBy=Relevance

例如:XDT Transform

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

https://stackoverflow.com/questions/61589997

复制
相关文章

相似问题

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