首先需要获得Azure上App-service 的porfile. 登录portal 选到app,点击Get publish pofile

将得到一个 ****.PublishSettings,注意这个文件还不是最后真正用于发布的配置,还需要做如下操作,得到一个真正的发布配置,真正发布配置是 xxx.pubxml

在VS 中打开项目,点击发布,导入配置

在导入配置后,在这个目录下(项目web的路径\Properties\PublishProfiles),能获得真正的  pubxml 结尾的,配置文件

打开PublishSettings文件(注意不是pubxml )在里面找到userPWD,复制密码

测试这个文件是否能用,直接在CMD 里面,Password  里面填 刚才复制的那个密码

dotnet publish XX/XX.csproj /p:PublishProfile="XX.pubxml" /p:Password=XXX

正常情况就能发布到azure 了,

简单Jenkins 任务就使用以下代码就行了

dotnet restore
dotnet build --configuration "Release"
dotnet publish --no-build -c Release XXX/xxxx.csproj /p:PublishProfile="xxxxxx- Web Deploy.pubxml" /p:Password=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

有几个问题需要注意下:

1.xxx.pubxml 这个文件不应该提交到源代码里面,所以当Jenkins 要发布项目的时候,是没有XXX.pubxml, 应该把这个文件放到Jenkins 服务器上, 开始发布把XXX.pubxml 复制到项目web的路径\Properties\PublishProfiles 里面,

.net core 发布不能指定配置文件位置,我也不清楚为什么这么死板,所以需要提前把配置文件 放到服务器某个位置,让Jenkins 可以复制

bat("copy /y \"${filePath}\" \"${destination}\"");

  

2.根据微软Best practice,机密信息应该放到 KeyVault 里面,而KeyVault 的名称应该配置到app-servcie 的环境变量里面,不应该通过appsetting.json来管理这个配置。但当初我也没仔细看,还是使用的appSetting 来管理 KeyVault,可以用下面代码来改appSetting

def void UpdateKeyVaultName(String prefix) {
String appsettingJsonPath = "${env.WORKSPACE}\\XXXXXX\\appsettings.json";
echo appsettingJsonPath;
String keyVaultName = "${prefix}-XXXX";
echo keyVaultName;
withEnv(["VAR_KeyVault=$keyVaultName","VAR_JsonPath=$appsettingJsonPath"])
{
powershell '''
$jsonPath = $env:VAR_JsonPath
$appsettings = Get-Content $jsonPath | ConvertFrom-Json
$appsettings.KeyVault = $env:VAR_KeyVault
$appsettings | ConvertTo-Json | set-content $jsonPath
'''
}
}

Jenkins将ASP.NETCore部署到Azure的更多相关文章

  1. ASP .NetCore 部署500错误 查看异常详情

    部署.net core 网站后,访问报错:500 按照教程设置完成,但访问时总是提示 服务器内部错误,没有详细的异常信息,无从下手. 解决办法: 1.在站点根目录下按住shift+鼠标右键,选择在此处 ...

  2. Asp.NetCore轻松学-部署到 Linux 进行托管

    前言 上一篇文章介绍了如何将开发好的 Asp.Net Core 应用程序部署到 IIS,且学习了进程内托管和进程外托管的区别:接下来就要说说应用 Asp.Net Core 的特性(跨平台),将 .Ne ...

  3. k8s+Jenkins+GitLab-自动化部署asp.net core项目

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 此文阅读目录: 1.闲聊 ...

  4. ASP.NET Core在Azure Kubernetes Service中的部署和管理

    目录 ASP.NET Core在Azure Kubernetes Service中的部署和管理 目标 准备工作 注册 Azure 账户 AKS文档 进入Azure门户(控制台) 安装 Azure Cl ...

  5. Asp.NetCore轻松学-使用Supervisor进行托管部署

    前言 上一篇文章 Asp.NetCore轻松学-部署到 Linux 进行托管 介绍了如何在 Centos 上部署自托管的 .NET Core 应用程序,接下来的内容就是介绍如何使用第三方任务管理程序来 ...

  6. Asp.NetCore轻松学-部署到 IIS 进行托管

    前言 经过一段时间的学习,终于来到了部署服务这个环节,.NetCore 的部署方式非常的灵活多样,但是其万变不离其宗,所有的 Asp.NetCore 程序都基于端口的侦听,在部署的时候仅需要配置侦听地 ...

  7. Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)

    Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一) 接上一篇 3. Nginx配置反向代理 3.1 cnetos 安装nginx 首先,我们需要在服务器上安装N ...

  8. Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一)

    环境 本地 win7 服务器:Virtual Box 上的Centos ssh工具: Xshell 文件传输: xftp 1.在本地创建asp.net core应用发布 1.1 使用Vs2017 新建 ...

  9. 使用 Visual Studio 将 ASP.NET Web 应用部署到 Azure

    原文地址:https://www.azure.cn/zh-cn/documentation/articles/web-sites-dotnet-get-started 配置新的 Web 项目 下一步是 ...

随机推荐

  1. MyBatis从入门到精通:第一章测试代码

    package tk.mybatis.simple.mapper; import org.apache.ibatis.io.Resources; import org.apache.ibatis.se ...

  2. 【Netty】使用解码器Decoder解决TCP粘包和拆包问题

    解码器Decoder和ChannelHandler的关系 netty的解码器通常是继承自ByteToMessageDecoder,而它又是继承自ChannelInboundHandlerAdapter ...

  3. 洛谷P3275 [SCOI2011]糖果 题解

    题目链接: https://www.luogu.org/problemnew/show/P3275 分析: 本题就是一个裸的差分约束. 核心: x=1x=1x=1时,a=b,a−>b,b−> ...

  4. Tiny Counting

    也许更好的阅读体验 样例一 输入 4 1 4 3 2 输出 3 样例二 输入 5 9 1 0 0 5 输出 8 题解 这是本人自己想了2个半小时才想出来的方法,稍稍有点复杂但是很好理解 题目的意思就是 ...

  5. Linux系统安装Tomcat——.tar.gz版(old)

    这里简单地阐述一下rpm.deb.tar.gz的区别. rpm格式的软件包适用于基于Red Hat发行版的系统,如Red Hat Linux.SUSE.Fedora. deb格式的软件包则是适用于基于 ...

  6. 探究netty的观察者设计模式

    javadoc笔记点 观察者的核心思想就是,在适当的时机回调观察者的指定动作函数 我们知道,在使用netty创建channel时,一般都是把这个channel设置成非阻塞的模式,这意味着什么呢? 意味 ...

  7. python基础之元祖、嵌套,for循环、 enumerate、range的试用案例

    元祖又叫做只读列表,可循环查询.可切片,元祖里的直接元素不能更改,但是若里面有嵌套的列表,则可以修改列表里的元素 tu = (1,2,3,'sun',[3,4,5,'cat']) tu[4][3] = ...

  8. jQuery 解析 url 参数

    应用场景: 三毛:我现在拿到一个 url 地址(https://www.google.com/search?dcr=&ei=5C&q=param),我现在要获取 location.se ...

  9. Number() 与 parseInt()解析

    在 Python 中,将字符串转为整型变量的函数是 int() ,直接使用 int("123")就可以得到 123的输出结果,这样可以比较快速的得到我们想要的结果,在 js 中将 ...

  10. Java 第四章

    switch选择结构 语法:switch(表达式){ case 常量 1: //代码块1:   break:  case 常量 2: //代码块2: break:    ......  default ...