通过MSBuild脚本发布.NET项目
最近遇到需要用到bat脚本来一键编译发布NET网站,找了很久的方案,最终在StackOverflow上面找到了一些解决方案:How to publish web with MSBuild? 可以尝试下这上面的其他方案。
里面有很多方法,采用了一个比较简单的脚本:
命名 Publish.bat :
@echo OFF call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsMSBuildCmd.bat" MSBuild.exe D:\\Solution\\DataLink.sln /p:DeployOnBuild=true /p:PublishProfile=PublishInDFolder pause
脚本依赖vs的 VsMSBuildCmd.bat ,找到vs安装路径之后然后找到 VsMSBuildCmd.bat 的路径粘贴到 call 后面,这个脚本其实就是vs里面发布的时候调用的脚本。
注意事项:
1、脚本最好放在解决方案 .sln 的根目录下,取当前路径用 %~dp0 ,比如上面的例子就直接 %~dp0DataLink.sln 这样就可以,后面跟上两个参数即可,DeployOnBuild 参数不用改动,默认为true
2、第二个参数: /p:PublishProfile=FolderProfile 这个参数特别注意,需要填写的是在vs发布界面配置的名称:

这里的配置实际上会保存在:项目目录\Properties\PublishProfiles\FolderProfile.pubxml 这个文件中,配置了这个参数后面就会调用这个配置文件中的各项数据,比如发布的位置,是否删除现有文件等等。
完成后的运行效果:

效率还是很快的,不需要打开vs,脚本直接生成。而且中间输出日志和vs发布的时候保持完全一致。
3、还可以将脚本添加到自动windows定时执行计划中每天自动发布。但涉及到更新代码这一块可以先将版本控制拉取写在脚本前面,拉取代码后再执行发布。
4、.NET的持续集成TeamCity或者Jenkins都是不错的选择,上面的脚本并不是来做CI。

浙公网安备 33010602011771号