使用Web|使用Web Deploy自动打包发布
在内部测试阶段,经常改一点小东西需要更新给测试继续测试。然后就需要频繁的找到对应更改的视图/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创建的内容。
点击验证连接,如果连接失败建议检查下WebManagement Service服务是否已启动。
文章图片
再检查下用户名和密码。(PS:如果确认无误还是不行的话,可以尝试重装Web Deploy)
发布
点击发布,发布文件夹下的内容就会自动更新到IIS站点上啦。
自定义发布内容
由于我们是多个web站点的项目,所以需要将次发布的内容移动到发布目录的特定文件夹中。
打开pubxml文件夹,添加
<_CustomMoveFiles Include="$(_PackageTempDir)\**" Exclude="$(_PackageTempDir)\bin\**; " />
绑定一个事件到CopyAllFilesToSingleFolderForMsdeploy后,点击发布生成成功后,发布的内容会先在_PackageTempDir生成,目录为web站点对应的\obj\Release\Package\PackageTmp\bin目录下。
我们可以在发布到iis之前,修正这个文件夹的内容,然后发布的时候就会按我们修正的内容去发布了。
使用ItemGroup可以定义我们要一定的内容,即我们需要将非bin文件夹外的文件都移动到发布文件夹的\Apps\Scm\目录下,使用Move命令可以实现这个,然后再使用RemoveDir将移动前的文件夹删除掉。
最后我们可以将Bin目录下的文件,选择性的发布
<_CustomBinFiles Include="$(_PackageTempDir)\bin\**" Exclude="$(_PackageTempDir)\bin\iERP.*" />
使用ItemGroup,定义要删除的文件,即非IERP.前缀的文件,然后使用Delete删除
原始发布生成的内容为
文章图片
经过我们上述操作后,除Bin文件夹外的内容都被移动到Apps里面了,然后Bin文件夹里只有IERP.为前缀的文件
文章图片
【使用Web|使用Web Deploy自动打包发布】
推荐阅读
- Python|使用python对全球最新疫情情况进行可视化地图绘制!
- javaWeb|redis错误总结
- Neo4j 开源转闭源企业版被分支,法院判决(分支使用“100%开源”是虚假宣传)
- 使用对等连接在天翼云两个用户的云网络之间架起一座天桥
- web前端技术Mongoose详解
- 开发工具|Go开发者用Linux与macOS使用VS Code开发Go应用程序
- 跨端实践|跨端实践 | Taro 框架中该如何使用 Vant 组件库-适配多端
- Go语言中一个fallthrough的使用问题
- Vue3中的ref与toRef
- Vue3当中的computed