在内部测试阶段,经常改一点小东西需要更新给测试继续测试。然后就需要频繁的找到对应更改的视图/JS文件,或者是编译的dll文件,再打开测试服务器找到对应站点替换进去,整套流程下来就非常的繁琐费时。

使用WebDeploy就可以很轻松的解决这些问题啦,我们可以直接在vs上点击发布就可以一键部署到iis对应的站点上了。

安转Web Deploy

打开http://www.iis.net/downloads/microsoft/web-deploy下载安装包,然后在服务器上进行安装,选择完整安装可以少踩坑。

安装IIS的管理服务

打开服务器管理器,选择添加角色和功能

一直点下一步,到服务器角色选项,勾选web服务器(IIS)下的管理服务。然后继续下一步到安装为止。

确认安装成功

查看管理服务

选择Windows凭证或IIS管理器凭证

添加IIS管理器用户

双击IIS管理器用户

添加用户

对应站点设置管理用户

选择IIS管理器权限

从IIS管理器中选择

使用VS一键发布

添加WebDploy发布

右键web站点,选择发布,创建一个Web部署

用户名和密码为刚刚IIS创建的内容。

点击验证连接,如果连接失败建议检查下Web  Management Service服务是否已启动。

再检查下用户名和密码。(PS:如果确认无误还是不行的话,可以尝试重装Web Deploy)

发布

点击发布,发布文件夹下的内容就会自动更新到IIS站点上啦。

自定义发布内容

由于我们是多个web站点的项目,所以需要将次发布的内容移动到发布目录的特定文件夹中。

打开pubxml文件夹,添加

<Target Name="MoveFilesToDesignatedDirectory" AfterTargets="CopyAllFilesToSingleFolderForMsdeploy">
<Message Text="Moving files to designated directory" importance="high" />
<ItemGroup>
<_CustomMoveFiles Include="$(_PackageTempDir)\**" Exclude="$(_PackageTempDir)\bin\**;" />
</ItemGroup>
<Move SourceFiles="%(_CustomMoveFiles.Identity)" DestinationFolder="$(_PackageTempDir)\Apps\Scm\%(RecursiveDir)" />
<Message Text="Delete other folder" importance="high" />
<RemoveDir Directories="$(_PackageTempDir)\Scripts;$(_PackageTempDir)\Template;$(_PackageTempDir)\Views;$(_PackageTempDir)\grf;" />
</Target>

  绑定一个事件到CopyAllFilesToSingleFolderForMsdeploy后,点击发布生成成功后,发布的内容会先在_PackageTempDir生成,目录为web站点对应的\obj\Release\Package\PackageTmp\bin目录下。

我们可以在发布到iis之前,修正这个文件夹的内容,然后发布的时候就会按我们修正的内容去发布了。

使用ItemGroup可以定义我们要一定的内容,即我们需要将非bin文件夹外的文件都移动到发布文件夹的\Apps\Scm\目录下,使用Move命令可以实现这个,然后再使用RemoveDir将移动前的文件夹删除掉。

最后我们可以将Bin目录下的文件,选择性的发布

 <Target Name="CutBin" AfterTargets="CopyAllFilesToSingleFolderForMsdeploy">
<Message Text="Cutting Bin directory" importance="high" />
<ItemGroup>
<_CustomBinFiles Include="$(_PackageTempDir)\bin\**" Exclude="$(_PackageTempDir)\bin\iERP.*" />
</ItemGroup>
<Delete Files="@(_CustomBinFiles)" />
</Target>

  使用ItemGroup,定义要删除的文件,即非IERP.前缀的文件,然后使用Delete删除

原始发布生成的内容为

经过我们上述操作后,除Bin文件夹外的内容都被移动到Apps里面了,然后Bin文件夹里只有IERP.为前缀的文件

使用Web Deploy自动打包发布的更多相关文章

  1. 发布nuget包的正确姿势---cicd自动打包发布nuget包

    最轻便的发布nuget包方式,方便cicd自动打包发布nuget包 首先新建项目 项目名随便取,这里就叫它GuiH.ClassLibrary 默认即可,需要改目标版本时,等创建好再改 项目创建好了 随 ...

  2. Visual Studio 使用Web Deploy 3.6发布项目

    工具:Web Deploy 3.6 点击下载 (强烈推荐使用独立的Web Deploy 安装包安装) 配置: 1.安装web deploy,安装好之后,点击IIS根目录,此处应有如下图标 另外,需要注 ...

  3. 使用release自动打包发布正式版详细教程

    昨天写了个release插件的版本管理,今天就在自动发布过程中遇到了许多坑,只能再写一篇自动发布详细教程,纪念我那昨日逝去的青春 (╥ _ ╥`) release正常打包发布流程按照如下几个阶段: C ...

  4. windows右键菜单自动打包发布nuget,没有CI/CD一样方便!

    构建现代的 .Net 应用离不开 Nuget 的支持,而快速打包 Nuget 成了提高生产率的有效方法.没有CI/CD?来试试使用windows右键菜单吧 先看右键效果图 有时候我们可能没有CI/CD ...

  5. Web Deploy自动配置

    自动发布配置,需要在发布的配置文件里面添加以下一句,避免在发布时,无权限! <Project ToolsVersion="4.0" xmlns="http://sc ...

  6. .NetCore下利用Jenkins如何将程序自动打包发布到Docker容器中运行

    说道这一块纠结了我两天时间,感觉真的很心累,Jenkins的安装就不多说了 这里我们最好直接安装到宿主机上,应该pull到的jenkins版本是2.6的,里面很多都不支持,我自己试了在容器中安装的情况 ...

  7. mac下git+maven+jenkins自动打包发布

    随着springboot+springcloud(dubbo)越来越多人使用,流行的微服务的概念越来越深入人心.分布式部署越来越复杂,给手动发布带来很大工作量.为了方便前期测试和后期线上部署更新,可使 ...

  8. Web Deploy 发布网站错误 检查授权和委派设置

    Web Deploy发布ASP.NET网站给我们提供方便,配置好后可以很方便地发布网站到IIS服务器. 自安装Web Deploy一年以来,一直都用得好好地. 直到最近,Gitlab-CI自动发布出了 ...

  9. VS2015 使用 Web Deploy 发布网站到 WindowsServer2008 R2服务器详解

    使用原因:由于开发期间需要将开发出的网站随时提交到服务器以便公司高层随时访问所以要求将开发出的网站每天发布到服务器,频繁度比较高,因此不能再使用之前的方式(发布到本地后再拷贝文件到服务器),所以想到了 ...

随机推荐

  1. CentOS 7 升级 gcc-4.8.5 到 gcc-5.4.0

    文章目录 1.环境介绍 2.下载gcc-5.4.0源码包 3.编译安装gcc 4.验证gcc版本 5.更新gcc连接 1.环境介绍 [root@localhost ~]# gcc -v Using b ...

  2. Python基础—基础数据类型int、bool、str(Day3)

    一.int 数字 用于计算,+ - * / % **等 bit_lenth():转化成二进制的最小位数. i=4 print(i.bit_length())执行结果:3 1   0000 0001 2 ...

  3. Spring 高级特性之二:Processor——Bean生命周期关键触发时机

    任何对象都有生命周期,那么Spring Bean对象创建.管理.销毁的整个生命周期个关键触发时机如何体现呢?先说结论,后续案例验证结论. 根据上图可知,实际bean对象涉及生命周期的主要是一个构造器和 ...

  4. Spring cloud是什么? 核心总结

    Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量. S ...

  5. 017 Linux 之啥是 ssh ?

    1 什么是 ssh?有什么用? (1)ssh 是一种协议 SSH(Secure Shell) 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议,利用 SSH 协议可以有效防止远程管理过程中的信 ...

  6. 攻防世界之Web_php_unserialize

    题目: <?php class Demo {     private $file = 'index.php';    public function __construct($file) {   ...

  7. ESP32-S3 arduino 开发环境搭建

    ESP32-S3 arduino 简要描述 在github上搜索arduino-esp32,找到并打开espressif/arduino-esp32仓库,从master主分支切换到esp32-s3-s ...

  8. HTTP攻击与防范-跨网站脚本攻击

    实验目的 1.了解XSS -跨网站脚本攻击带来的危险性. 2.掌握XSS -跨网站脚本攻击的原理与方法 3.掌握防范攻击的方法 实验原理 跨网站脚本攻击之所以会发生,是因为网站的Web应用程序对用户的 ...

  9. 还在争论WPS、Office哪个更好用?这款云办公工具才是真的香!

    最近,金山WPS更新狠狠的刷了一波存在感.尤其是xlookup函数,着实是有被惊艳到,也让大家看到了国产办公软件的进步.甚至有人认为WPS已经超越了传统的办公软件--微软office.WPS的优点固然 ...

  10. 学习OMO游戏管理驾驶舱的设计

    2019年第1季度,Smartbi帮助合作伙伴开发了一个销售管理沙盘游戏(OMO),在第一个版本中主要精力放在游戏的后台过程逻辑上(基于电子表格的报表和回写能力),并没有把Smartbi的最强项--数 ...