环境准备:
1.ide visual studio2017 Enterprise,Ide可以https://visualstudio.microsoft.com/zh-hans/downloads/下载
注意
A.如果使用了不通版本的vs,请在后续的构建脚本中作出相应更改
B.在安装时,请确保选择了.NET桌面开发
2.jenkins,请从https://jenkins.io/download/ 进行下载
3.winrar 安装在C:\Program Files\WinRAR
4.其他应该了解的
A.请在jenkins安装在windows主机上,linux上是不能构建的.因为经典的.net framework不能运行在linux上
B.本示例是将工程的输出目录放在了解决方案src目录下,分别取名为Debug和Release
jenkins的必要配置
1.git的安装,百度下一步就ok
2.Publish Over FTP,用于将生成的安装包和更新包放置到ftp服务器
3.为什么不用msbuild插件编译,因为msbuild无法编译vdproj
另外你如果用.netframework4 下的msbuild编译,你可能会收到nameof无法解析之内的错误...
创建jenkins工程
1.新建任务,输入工程名称,选择 构建一个*风格的软件项目 模板来添加一个构建任务
2.git 配置,这个按照代码仓库的地址和认证模式配置即可.如果没有安装git,这里会提示找不到git.exe
3.为了避免出现各种操蛋的问题,建议在每次构建前清空工作空间
4.添加一个执行windows批处理条目,用于执行nuget还原
请确保在你的解决方案根目录有nuget.exe(可从网上下载,然后放到对应位置即可)
如果你的项目中有自定义的nuget包,请添加一个nuget.config,并配置号对应的源
最终的项目目录应该是类似这样的:
nuget.config的配置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="www.007008.fun" value="http://www.007008.fun:7789/nuget/Default/" />
</packageSources>
</configuration>
最后输入下面的批处理命令,你的项目就可以在编译时还原nuget包了
nuget.exe locals global-packages -clear
nuget.exe restore
5.以下是整个构建脚本
这里使用rar压缩了输出路径下的目录下的文件作为更新包
使用Advanced Installer 命令行进行了安装包的自动构建
echo "正在还原程序包..."
nuget.exe locals global-packages -clear
nuget.exe restore echo "正在设置环境变量..."
set devnev=C:\Program Files (x86)\Microsoft Visual Studio\\Preview\Common7\IDE\devenv.com
set advinst=C:\Program Files (x86)\Caphyon\Advanced Installer 14.9\bin\x86\advinst.exe
set SolutionName=lamic-pc-v4.sln
set ConfigurationPlatform=Release^|x86
set Configuration=Release
set rar=%ProgramW6432%\WinRAR\winrar.exe
set OutputPath=%WORKSPACE%\src\%Configuration%\
set UpdatePackagePath=%WORKSPACE%\update_packages\update.zip
set Setup=%WORKSPACE%\src\Setup\Setup.aip echo "开始使用devenv.com编译程序..."
"%devnev%" "C:\Program Files (x86)\Jenkins\workspace\%JOB_NAME%\%SolutionName%" /ReBuild "%ConfigurationPlatform%" echo "正在写入BUILD_NUMBER..." echo %BUILD_NUMBER%>>"%WORKSPACE%\src\%Configuration%\version" echo "开始删除无用的目录和文件..."
del "%WORKSPACE%\src\%Configuration%\*.pdb" echo "开始创建更新包..."
"%rar%" a -ep1 -r "%UpdatePackagePath%" "%OutputPath%" echo "开始构建安装包"
"%advinst%" /rebuild "%Setup%"
7.添加一个构建后的操作,用于将更新包和安装包传输到FTP上