Jenkins构建基于.NET Framework的web程序

之前写了一篇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

         我这里说下我使用的:

  1. /t:Rebuild:重新生成
  2. /p:Configuration=Release:Release 生成模式
  3. /p:VisualStudioVersion=15.0:指定子工具集版本,不设置会报错。(VS2015是14.0,VS2017是15.0)
  4. /p:DeployOnBuild=True;PublishProfile="pubxml文件名":使用.pubxml 发布文件来发布项目
  5. /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"?>
<!--
此文件由 Web 项目的发布/打包过程使用。可以通过编辑此 MSBuild 文件
自定义此过程的行为。为了解与此相关的更多内容,请访问 https://go.microsoft.com/fwlink/?LinkID=208121。 
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <PublishProvider>FileSystem</PublishProvider>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <publishUrl>bin\Release\Publish</publishUrl>
    <DeleteExistingFiles>False</DeleteExistingFiles>
  </PropertyGroup>
</Project>

这里我要解释下publishUrl这个节点,这个节点就是发布后的文件存放地,但是我觉得这个写服务器路径不太好,所以在命令行里面写了。

命令行里面的参数应该是会覆盖这个节点里面写的。所以按照命令行里面的路径去发布了。

最后,保存就可以了。然后在外面构建即可。

感谢以下链接给我的帮助:

  https://www.cnblogs.com/huhubun/p/6345077.html

  https://blog.csdn.net/sD7O95O/article/details/82504547

原文地址:https://www.cnblogs.com/cluyun/p/11180750.html