dotnet core 命令行使用web deploy 部署项目到远程IIS
众所周知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的更多相关文章
- 『.NET Core CLI工具文档』(一).NET Core 命令行工具(CLI)
说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:.NET Core Command Line Tools 翻译:.NET Core命令行工具 什么是 .NET Core ...
- 边缘化搭建 DotNet Core 2.1 自动化构建和部署环境(下)
写在前面 本篇文章是上一篇边缘化搭建 DotNet Core 2.1 自动化发布和部署(上)的后续操作,本文主要讲解如何开启Docker Remote API,开启Remote API后的权限安全问题 ...
- java web 手动部署项目步骤
java Web 手动部署项目步骤 1 在tomcat下面的webapps下面建立需要部署的文件夹(eg:demo);2 在demo下建立 WEB-INF WETA-INF src 文件夹;3 在sr ...
- 使用maven命令进行打包,部署项目到远程仓库
如果要部署项目到远程仓库, 方法一:配置pom.xml: <distributionManagement> <repository> <id>releases< ...
- VS2010命令行编译C#和VC项目
VS2010命令行编译C#和VC项目 VS2010命令行编译C#和VC项目 根据需要动态创建数据库字段后,需要动态创建或者调整页面,那就需要编译这些页面和后台文件.因此使用命令行编译将会非常方便,对于 ...
- Maven命令行创建java或javaWeb项目
Maven命令行创建java或javaWeb项目 1.命令行创建普通java项目 mvn archetype:generate -DgroupId=com.fxust -DartifactId=d ...
- Visual Studio 使用Web Deploy发布项目
工具:Web Deploy 3.6 点击下载 (强烈推荐使用独立的Web Deploy 安装包安装) 使用 Web Platform Installer 安装 Web Deploy(3.5,3.6都安 ...
- Ubuntu Terminal命令行新建仓库并推送到远程仓库
通常情况下,在本地新建一个仓库之后,需要在远端网页端也新建一个空的同名仓库,然后将两者进行关联才能推送. 那有没有办法直接在命令行就完成从新建到推送的过程而不需要中间在网页端也操作一番呢?办法当然是有 ...
- IntelliJ IDEA自动部署项目至远程服务器与传统部署项目至远程服务器的区别
每次开发Java项目时,对于所有Java开发人员来说,最枯燥的不是修改代码,而是实时将自己的代码上传至远程服务器,进行测试或者部署,本人最初开发也是这样,通过使用Xshell 5,WinSCP等工具对 ...
随机推荐
- 编译Python出现Tab,空格的问题
我们编译python代码时, 经常出现各种因为tab和空格的问题, 例如: IndentationError: unindent does not match any outer indentatio ...
- ceph学习之CRUSH
CRUSH的全称是Controlled Replication Under Scalable Hashing,是ceph数据存储的分布式选择算法,也是ceph存储引擎的核心.在之前的博客里介绍过,ce ...
- Java 编程规范,常见规范,命名规范,复杂度
方法/步骤 1. *不允许把多个短语句写在一行中,即一行只写一条语句 1. 示例:如下例子不符合规范. LogFilename now = null; LogFilename t ...
- php-fpm包的安装与配置
实验环境:CentOS7 [root@~ localhost]#yum -y install php-fpm php-fpm包:用于将php运行于fpm模式 #在安装php-fpm时,一般同时安装如下 ...
- node包管理工具nvm
去NVM官网下载NVM压缩包,下载nvm-setup.zip,直接傻瓜式安装 安装成功后运行命令: nvm -v 常用命令: nvm install <version> ## 安装指定版本 ...
- js 函数定义的两种方式以及事件绑定(扫盲)
一.事件(例如:onclick)绑定的函数定义放在jsp前面和放后面没影响 二. $(function() { function func(){}; }) onclick通过如下方式绑定事件到jsp中 ...
- win10系统-javac不是内部或外部命令
给笔记本装了一个ssd,上午装的系统,重新搞jdk,设置JAVA_HOME之后,cmd运行javac报 “javac不是内部或外部命令”各种懵逼,试了好几次才发现Path路径里面不能用%JAVA_HO ...
- 如何更新node和npm版本
更新npm ---> npm undate -g 更新node ---> npm install -g -n n latest
- SharePoint 无法“使用资源管理器打开”
提示错误信息: 在文件资源管理器中打开此位置时遇到问题.将此网站添加到受信任的站点列表,然后重试. 服务器情况: 安装 Internet Explorer 10 后,在 Windows 资源管理器中打 ...
- 关闭socket以及Socket选项
1 关闭socket ·1)socket套接字使用完毕之后,我们需要将起及时的关闭,正如输入输出流的关闭是一样的:在我上一篇文章中介绍了如何模拟httpClient发送请求数据:这里我还是使用上一篇文 ...