.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. 以 管理员身份 打开 PowerShell 或 CMD
  2. 创建新用户(例如叫 jenkins-user):
  3. 💡 后续你需要在 目标服务器(TEST/PROD) 上也创建同名同密码的用户!

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

❌ 不要选 “Run service as LocalSystem” —— 它不能访问网络!

  1. 双击下载好的 jenkins-xxx-windows-x64.msi
  2. 按提示点击 Next,直到出现 “Service Logon Identity” 页面
  3. 关键选择:

  4. ✅ 勾选 “Run service as local or domain user”
  5. 在下方输入:
    • User name.\jenkins-user
      (注意:. 表示本地计算机,这是 Windows 本地用户的标准写法)
    • PasswordP@ssw0rd123!
  6. 继续点击 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,运行:
  3. # 创建同名同密码的本地用户
    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 仓库凭据(用于拉代码)

  • KindUsername with password
  • Scope: Global
  • Username: 你的 Gitblit 用户名
  • Password: 密码
  • IDgit-creds
  • DescriptionGitblit 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 成功
    • 成功停止/启动远程服务
    • 文件复制无错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值