众所周知dotnet cli可以用来编译和生成发布.net core,其实dotnet publish 还能进行WebDeploy。先解释一下使用场景一般是用于持续部署

dotnet publish进行web deploy其实是内置调用MSBuild, 相当于dotnet publish和MSBuild进行web deploy两个步骤合二为一了。

首先,执行部署命令的机器需要安装MSBuild 和Visual Studio Build Tools。目前最新的Visual Studio Installer已经集成了安装组件,所以我们只需要通过Visual Studio Installer来安装就可以了。后续的vs2019版本的安装器应该也会是这样的。

如下图所示,勾选Visual C++生成工具,取消勾选CMake和测试工具(因为进行web deploy是不需要,需要的人请略过)

然后在单个组件中勾选Web部署 (Web Deployed)

然后点击安装就可以了,总共需要约4G空间。

在VS中添加WebDeploy配置文件

填入目标服务器,站点名,进行部署的用户名 密码,目标url选填。然后点击验证连接,测试是否出错。保存即可。默认生成的发布xml文件叫做CustomProfile.pubxml。在项目的Properties/PublishProfiles下可以看到,可以重命名。

然后打开命令行或者Powershell到项目所在目录,运行dotnet publish命令,加上web deploy参数即可。

示例如下

dotnet publish -c Release /p:PublishProfile="CustomProfile" /p:Password=xxxxx /p:AllowUntrustedCertificate=true
PublishProfile参数指定发布xml文件名,Password指定发布用户名的密码,AllowUntrustedCertificate指定是否允许不信任认证,设置为true就不会报连接未认证的错误了。
其实还可以在任意路径运行,但是dotnet publish后要加上项目csproj文件的路径,效果和一样。

命令行发布成功

在windows服务器中使用CI(持续集成)/CD(持续部署)就可以通过这种方式一步到位编译生成部署。

jenkins teamcity都行。azure devops则完全不需要这种方式,因为它自带的IIS部署就已经很强大了,而且CI和CD是完全分离的。

但是azure devops的CI构建没有缓存,导致每次构建都是一次git下载,完全重新编译部署的过程,实在是   太慢了。或许后续会有所改进吧(再吐槽下azure devops本地部署(就是TFS) 所用的ES实在是太吃内存,常年占用4-6G,换成云的又是6刀/人/月(5人一下免费),公司开发者刚好10个左右,很尴尬,不愿意花这钱。还有就是CI的速度问题最终不得不放弃Azure DevOps,选择了teamcity)

												

dotnet core 命令行使用web deploy 部署项目到远程IIS的更多相关文章

  1. 『.NET Core CLI工具文档』(一).NET Core 命令行工具(CLI)

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:.NET Core Command Line Tools 翻译:.NET Core命令行工具 什么是 .NET Core ...

  2. 边缘化搭建 DotNet Core 2.1 自动化构建和部署环境(下)

    写在前面 本篇文章是上一篇边缘化搭建 DotNet Core 2.1 自动化发布和部署(上)的后续操作,本文主要讲解如何开启Docker Remote API,开启Remote API后的权限安全问题 ...

  3. java web 手动部署项目步骤

    java Web 手动部署项目步骤 1 在tomcat下面的webapps下面建立需要部署的文件夹(eg:demo);2 在demo下建立 WEB-INF WETA-INF src 文件夹;3 在sr ...

  4. 使用maven命令进行打包,部署项目到远程仓库

    如果要部署项目到远程仓库, 方法一:配置pom.xml: <distributionManagement> <repository> <id>releases< ...

  5. VS2010命令行编译C#和VC项目

    VS2010命令行编译C#和VC项目 VS2010命令行编译C#和VC项目 根据需要动态创建数据库字段后,需要动态创建或者调整页面,那就需要编译这些页面和后台文件.因此使用命令行编译将会非常方便,对于 ...

  6. Maven命令行创建java或javaWeb项目

    Maven命令行创建java或javaWeb项目   1.命令行创建普通java项目 mvn archetype:generate -DgroupId=com.fxust -DartifactId=d ...

  7. Visual Studio 使用Web Deploy发布项目

    工具:Web Deploy 3.6 点击下载 (强烈推荐使用独立的Web Deploy 安装包安装) 使用 Web Platform Installer 安装 Web Deploy(3.5,3.6都安 ...

  8. Ubuntu Terminal命令行新建仓库并推送到远程仓库

    通常情况下,在本地新建一个仓库之后,需要在远端网页端也新建一个空的同名仓库,然后将两者进行关联才能推送. 那有没有办法直接在命令行就完成从新建到推送的过程而不需要中间在网页端也操作一番呢?办法当然是有 ...

  9. IntelliJ IDEA自动部署项目至远程服务器与传统部署项目至远程服务器的区别

    每次开发Java项目时,对于所有Java开发人员来说,最枯燥的不是修改代码,而是实时将自己的代码上传至远程服务器,进行测试或者部署,本人最初开发也是这样,通过使用Xshell 5,WinSCP等工具对 ...

随机推荐

  1. MongoDB3.2.8创建初始用户

    启动MongoDB前需要关闭配置文件中的auth选项,否则不能创建用户 首先创建用户管理用户 use admin db.createUser({user:'admin',pwd:'123456', r ...

  2. Wireshark抓包常见问题解析

    1.   tcp out-of-order(tcp有问题) 解答: 1).    应该有很多原因.但是多半是网络拥塞,导致顺序包抵达时间不同,延时太长,或者包丢失,需要重新组合数据单元 因为他们可能是 ...

  3. Design:目录

    ylbtech-Design:目录 1.返回顶部 1. http://idesign.qq.com/#!index/feed 2. https://www.behance.net/ 3. 2.返回顶部 ...

  4. JS判断提交表单不能为空 等的验证

    转自:https://blog.csdn.net/qiu512300471/article/details/23259811 <script type="text/javascript ...

  5. Struts2 配置项

    基础Constants struts.devMode  可选值true,false (默认false),在开发模式下,struts2的动态重新加载配置和资源文件的功能会默认生效.同时开发模式下也会提供 ...

  6. eclipse安装WTP部署WEB项目

    打开WTP官方安装指南,找到想要的下载站点 http://wiki.eclipse.org/WTP_FAQ#How_do_I_install_WTP.3F 我选择的是http://download.e ...

  7. ubuntu 和 CentOS 安装docker

    一.ubuntu14.04 安装docker 1 apt-get update2 apt-get update-grup3 reboot4 检查mapper的安装:ls -l /sys/class/m ...

  8. RN控件之View Text

    /** * 模仿美团首页部分 * */ 'use strict' import React,{ AppRegistry, Component, StyleSheet, Text, View, Imag ...

  9. 《精通Spring4.X企业应用开发实战》读后感第七章(AOP基础知识、jdk动态代理,CGLib动态代理)

  10. winDump

    windump -i 00-00-10-00-43-A2  监听网卡(一个适配器一个网卡,一个mac)