.net使用Jenkins 构建、部署到windows服务器上

因权限问题,本次构建、部署是在本机上完成的

1、安装Jenkins

📥 第一步:下载 Jenkins Windows 安装包

  1. 打开浏览器,访问官方下载页:
    👉 https://www.jenkins.io/download/
  2. "Long-term Support (LTS)" 区域,点击 Windows 图标(会下载 .msi 文件)
    • 文件名类似:jenkins-2.440.3-windows-x64.msi
    • ⚠️ 不要下载 .war 或 Generic Java Package,我们要的是 Windows Installer (.msi)

🔧 第二步:准备一个专用部署用户(关键!)

在你的 Jenkins 服务器 上操作:

  1. 管理员身份 打开 PowerShellCMD
  2. 创建新用户(例如叫 jenkins-user):
  3. 💡 后续你需要在 目标服务器(TEST/PROD) 上也创建同名同密码的用户!

🚀 第三步:运行 Jenkins 安装程序(.msi)

❌ 不要选 "Run service as LocalSystem" ------ 它不能访问网络!

  1. 双击下载好的 jenkins-xxx-windows-x64.msi
  2. 按提示点击 Next ,直到出现 "Service Logon Identity" 页面

关键选择:

  1. ✅ 勾选 "Run service as local or domain user"
  2. 在下方输入:
    • User name : .\jenkins-user
      (注意:. 表示本地计算机,这是 Windows 本地用户的标准写法)
    • Password : P@ssw0rd123!
  3. 继续点击 Next ,使用默认端口 8080,完成安装

🔍 第四步:验证 Jenkins 是否正常运行

打开浏览器,访问:

复制代码
http://localhost:8080
  1. 如果看到 "Unlock Jenkins" 页面,说明安装成功!
  2. 获取初始密码(打开 PowerShell)
  3. 输入 type C:\ProgramData\Jenkins\.jenkins\secrets\initialAdminPassword
  4. 复制密码,粘贴到网页,继续初始化(安装推荐插件即可)

🛡️ 第五步:为目标服务器创建同名用户(部署前必须做!)

Jenkins 要部署到 任何一个服务器上,这些机器必须信任 jenkins-user

  1. 以管理员身份登录目标服务器
  2. 打开 PowerShell,运行:
复制代码
   # 创建同名同密码的本地用户
   2net user jenkins-user P@ssw0rd123! /add
   3
   4# 加入管理员组(或至少给 C:\Apps 写权限)
   5net localgroup administrators jenkins-user /add

🧪 第六步:测试 Jenkins 能否访问目标服务器

1、在 Jenkins 服务器 上手动测试:

net use \\HIT-I07812-N\C$ /user:jenkins-user P@ssw0rd123!

如果返回:

复制代码
The command completed successfully.

✅ 说明 Jenkins 未来可以通过此账号部署!

安装Jenkins的过程中,可能会提示java包不匹配的问题,下载安装即可

2、配置 Jenkins 实现 .NET 6 应用的自动构建与部署(Windows 环境)

✅ 目标

  • 从 Git 仓库拉取代码(如 Gitblit)
  • 使用 dotnet build + dotnet publish 构建 .NET 6 应用
  • 自动部署到 Windows 测试服务器(如 \\TEST-SERVER\C$\Apps\MyApp
  • 通过 Windows 服务运行应用

前提条件确认

🛠️ 第一步:在 Jenkins 中安装必要插件

  1. 进入 Manage Jenkins → Plugins → Available plugins ,搜索并安装以下插件(勾选后点"Install without restart"):
    • Git
    • Pipeline
    • Credentials Binding
    • Workspace Cleanup(可选)

安装完成后重启 Jenkins(如果提示需要)。

🔐 第二步:配置凭据(Credentials)

1. Git 仓库凭据(用于拉代码)

  • Kind : Username with password
  • Scope: Global
  • Username: 你的 Gitblit 用户名
  • Password: 密码
  • ID : git-creds
  • Description : Gitblit access

📂 第三步:准备 .NET 6 项目结构

确保你的项目根目录包含:

注意:.git文件最好和Jenkinsfile同一级

.csproj 中启用自包含发布(推荐):

这样 dotnet publish 会生成 MyApp.exe,可直接作为 Windows 服务运行。

📜 第四步:创建 Jenkinsfile(核心)

在项目根目录新建文件 Jenkinsfile,内容如下:

pipeline {

agent any

environment {

APP_NAME = 'API' // 为IIS上的名称

DEPLOY_PATH = 'E:/code/2026/GPM/publish' //IIS上的物理路径

APP_POOL_NAME = 'API' // 必须和 IIS 应用池一致

}

stages {

stage('Checkout') {

steps {

checkout scm

}

}

stage('Publish VOL.WebApi') {

steps {

// ✅ 直接发布单个项目,无需先 restore/build

bat 'dotnet publish VOL.WebApi/VOL.WebApi.csproj -c Release -o publish --no-self-contained'

}

}

stage('Deploy to Local IIS') {

steps {

bat 'if exist "%DEPLOY_PATH%" rmdir /s /q "%DEPLOY_PATH%"'

bat 'mkdir "%DEPLOY_PATH%"'

bat 'robocopy "publish" "E:/code/2026/GPM/publish" /MIR /NFL /NDL || exit 0'

bat "powershell -Command \"Restart-WebAppPool -Name \\\"${APP_POOL_NAME}\\\"\""

}

}

}

post {

success {

echo "✅ 部署成功!访问 http://localhost:8081"

}

failure {

echo "❌ 部署失败,请检查日志"

}

}

}

注意:因为这是本地部署配置,若Jenkins和Git在不同服务器,配置要修改,可百度或AI查

🔄 第五步:在 Jenkins 中创建 Pipeline 任务

  1. 点击 New Item
  2. 输入名称:MyApp-CI-CD
  3. 选择 Pipeline → 点击 OK
  4. Pipeline 区域:
    • Definition: Pipeline script from SCM
    • SCM: Git
      • Repository URL: http://gitblit.local/r/myapp.git
      • Credentials: 选择 git-creds
      • Branches to build: */main
      • Script Path: Jenkinsfile
  5. 点击 Save

🚀 第六步:首次手动构建 & 验证

  1. 进入任务页面 → 点击 Build Now
  2. 查看 Console Output ,观察是否:
    • 成功拉取代码
    • dotnet build/publish 成功
    • 成功停止/启动远程服务
    • 文件复制无错误
相关推荐
米高梅狮子20 小时前
01-Ansible 自动化介绍
运维·自动化·ansible
Ha_To20 小时前
2026.1.12 Linux提升账户权限
linux·运维·服务器
OopspoO20 小时前
Linux内存分析工具
linux·运维
杭州龙立智能科技20 小时前
好用的物料转运小车价格哪家合理
运维
Gofarlic_OMS20 小时前
ANSYS许可证使用合规性报告自动化生成方案
大数据·运维·人工智能·3d·自动化·云计算
五仁火烧20 小时前
静态文件服务器和动态服务器
运维·服务器
H_z_q240121 小时前
RHCE的时间服务器与NTP、chrony
java·运维·服务器
cc_beolus21 小时前
服务器介绍
运维·服务器
末日汐21 小时前
磁盘与文件系统
linux·运维·数据库
夏沫mds21 小时前
基于hyperledger fabric的葡萄酒溯源系统
运维·fabric