之前写了一篇Jenkins+gogs发布的基础文章。这篇博客是基于之前的文章写的。
之前文章地址:https://www.cnblogs.com/cluyun/p/10848989.html
所以阅读以下文章你需要有Jenkins+git的基础构建的知识。
这次主要是写如何用Jenkins构建基于.NET Framework的web应用程序。
一. 先决条件
安装顺序 | 名称 | 下载地址 | 备注 |
1 | .NET Framework Developer Pack | https://dotnet.microsoft.com/download/visual-studio-sdks | 下载安装你要编译的项目的版本。如果安装的时候提示已经安装更高的版本啥的就不要管了。 |
2 | .NET Framework Runtime | ||
3 | Visual Studio MSBuild | https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/ | 没错就是下载Visual Studio,如果想省事就直接把vs装在服务器上吧。不想的话就复制本机的 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"(vs安装目录) 目录下的"MSBuild"和"Team Tools"两个文件夹到服务器的相同目录下吧。 |
4 | Visual Studio Team Tools | ||
5 | NuGet | https://www.nuget.org/downloads | 这个是用来下载你项目中引用的包的。下载好了后把exe放到你觉得合适的地方就好了,不用双击运行。 |
二. 配置Jenkins
先安装插件MSBuild
在全局工具配置里面配置MSBuild,然后点击保存。
解释下这里的参数:
- Name:这个名字随便写,到后面项目构建的时候要根据这个名字选择。
- Path to MSBuild:vs安装目录中MSBuild.exe的所在路径。
三. 在构建项目中使用
先创建项目
点击确定
配置好git
增加构建步骤,"执行windows批处理命令"和"Build a Visual Studio project or solution using MSBuild"
执行windows命令就是还原nuget包,命令格式为:nuget.exe地址 restore 项目文件.sln
Build a Visual Studio project or solution using MSBuild 中的参数含义:
- MSBuild Version:选择你之前在全局配置里面弄好的
- MSBuild Build File:写你项目中的.csproj文件的路径
- Command Line Arguments:要执行的MSBuild命令
介绍下MSBuild命令
官方文档:https://docs.microsoft.com/zh-cn/visualstudio/msbuild/msbuild
我这里说下我使用的:
- /t:Rebuild:重新生成
- /p:Configuration=Release:Release 生成模式
- /p:VisualStudioVersion=15.0:指定子工具集版本,不设置会报错。(VS2015是14.0,VS2017是15.0)
- /p:DeployOnBuild=True;PublishProfile="pubxml文件名":使用.pubxml 发布文件来发布项目
- /p:publishUrl="存放路径":构建完成后的整个编译后项目文件存放地。
这里尤其应该注意的是这个pubxml文件,默认应该在"/Properties/PublishProfiles"文件夹下。但是默认项目好像是没有的。
所以这个时候,要手动生成了如果你用过vs自带的发布就应该会,在vs中右键web项目然后点击发布,发布完了后,"/Properties/PublishProfiles"文件夹下就会出现.pubxml文件了。
最后把.pubxml文件上传到git就好。如果你不想我说的这么麻烦,可以直接在"/Properties/PublishProfiles"文件夹下新建FolderProfile.pubxml,然后在里面写我下面的内容,最后上传到git也行。
xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <WebPublishMethod>FileSystemWebPublishMethod> <PublishProvider>FileSystemPublishProvider> <LastUsedBuildConfiguration>ReleaseLastUsedBuildConfiguration> <LastUsedPlatform>Any CPULastUsedPlatform> <SiteUrlToLaunchAfterPublish /> <LaunchSiteAfterPublish>TrueLaunchSiteAfterPublish> <ExcludeApp_Data>FalseExcludeApp_Data> <publishUrl>bin\Release\PublishpublishUrl> <DeleteExistingFiles>FalseDeleteExistingFiles> PropertyGroup> Project>
这里我要解释下publishUrl这个节点,这个节点就是发布后的文件存放地,但是我觉得这个写服务器路径不太好,所以在命令行里面写了。
命令行里面的参数应该是会覆盖这个节点里面写的。所以按照命令行里面的路径去发布了。
最后,保存就可以了。然后在外面构建即可。
感谢以下链接给我的帮助:
https://www.cnblogs.com/huhubun/p/6345077.html
https://blog.csdn.net/sD7O95O/article/details/82504547