首页 > 系统相关 >在Windows运行Gitlab Runner打包基于.NET Framework 4.6.1的项目

在Windows运行Gitlab Runner打包基于.NET Framework 4.6.1的项目

时间:2024-05-08 10:57:51浏览次数:16  
标签:4.6 Windows Gitlab project Framework msbuild Runner path output

摘要

本文详细描述了运行在Windows商的Gitlab Runner,如何自动集成.NET Framework的项目。

Gitlab中的变量

变量1:NUPKG_OUTPUT_ROOT

这个目录是在git获取的解决方案根目录之外,因为stages变了以后,当前Gitlab Runner工作的当前解决方案根目录下会被清空。我们希望build了以后经过单元测试,测试通过了才push到仓库。所以这个目录必须是在Gitlab Runner的build目录之外。

img

变量2:BUILD_LIBRARY_SCRIPT

Windows服务器上存放PowerShell的文件路径。

img

变量3:MSBUILD_PATH

Windows服务器上,msbuild.exe文件所在的目录。

img

Gitlab Runner服务器上的PowerShell

function Build-Project {
	param (
		[string]$msbuild_dir,
		[string]$ci_project_dir,
		[string]$project_path,
		[string]$version,
		[string]$output_path 
	)
$project_file = $ci_project_dir + "\\" + $project_path
if(( $project_path -like "/*") -or ($project_path -like "\\*")){
	$project_file = $ci_project_dir + $project_path
}
if (-not $output_path) {
	Write-Host "没有传入第5个参数,nupkg包将放在解决方案根目录的nupkg中"
	$output_path =$ci_project_dir + "/nupkg"
} else {
	Write-Host "指定了nupkg包的输出目录"
}
Write-Host "nupkg包的输出目录是:" + $output_path

echo "项目文件"$project_file 
echo "版本号"$version
echo "输出路径"$output_path
cd $msbuild_dir
dotnet nuget locals http-cache -c
.\msbuild -restore $project_file
.\msbuild $project_file /p:OutputPath=$output_path /p:Version=$version
.\msbuild -t:pack $project_file /p:Configuration=Release /p:OutputPath=$output_path /p:PackageOutputPath=$output_path /p:PackageVersion=$version
}

Visual Studio中编写.gitlab-ci.yml

stages:          # List of stages for jobs, and their order of execution
  - build

variables:
    YEE_CLOUD_VERSION_ID : 2024.5.$CI_PIPELINE_IID
    YEE_CLOUD_NUPKG_DIR : $NUPKG_OUTPUT_ROOT\\Yee.Cloud\\$YEE_CLOUD_VERSION_ID

build-job:       # This job runs in the build stage, which runs first.
  stage: build
  tags:
    - zhongfang-windows
  before_script:
    - .$BUILD_LIBRARY_SCRIPT
  script:
    - echo "Compiling the code..."
    # Yee.Cloud
    - Build-Project $MSBUILD_PATH $CI_PROJECT_DIR "Yee.Cloud/Yee.Cloud.csproj" $YEE_CLOUD_VERSION_ID $YEE_CLOUD_NUPKG_DIR

执行效果

有图有真相:

img

存在的问题:

如果编译出错,PowerShell不能让Gitlab Runner控制台认为是任务失败了。

本文还会有后续更新。

标签:4.6,Windows,Gitlab,project,Framework,msbuild,Runner,path,output
From: https://www.cnblogs.com/amisoft/p/18179147/gitlab-runner-build-project-based-on-net461

相关文章

  • windows下使用命令行查看已存储的wifi密码
    netshwlanshowinterface查看当前已连接wifi信息  netshwlanshowprofiles查看所有已保存的wifi配置文件     netshwlanshowprofilesname="XXXXXX"key="Clear"查看特定配置文件详情,包括wifi密码,密码在“关键内容”行 ......
  • 访问framework中hide方法
    经常大家会做安卓系统开发工作问到一个问题,那就是我如果framework代码中增加了一个方法啥的,但是我又不想公开给第三方应用知道,只想让我系统的应用知道,那该怎么办呢?其实这个时候经常就会用到一个hidden的标签,来代表这个方法是隐藏方法,隐藏方法就是给系统内部用的,意味着第三方app就......
  • Windows下使用ONNXRuntime的GPU进行推理时提示cudnn64_8.dll异常
    一、问题复现将模型放到GPU上推理时时发生的异常。OrtSessionOptionsAppendExecutionProvider_CUDA(session_options,0);...ort_outputs=session_.Run(Ort::RunOptions{nullptr},inputNames.data(),&input_tensor_,1,outNames.data(),outNames.size());二、解......
  • windows 环境下python和R的交互
    Rstudio调用Python模块:0.查看python路径sessionInfo()指定python路径library(reticulate)#R使用python的工具path_to_python<-"D:/python"use_python(path_to_python)reticulate::use_python(path_to_python)anndata是python模块,初次运行报错library(anndata)ad<-r......
  • Windows Server查看W3SVC IIS服务器中对应的网站日志
    WindowsServer查看W3SVCIIS服务器中对应的网站日志https://www.cnblogs.com/xiaoyou2018/p/16592930.htmlWindowsServer如何查看IIS服务器中对应的网站日志https://shiyousan.com/post/636240709447985366存在多个W3SVC文件的原因https://blog.csdn.net/qq_38150880/a......
  • Linux与Windows操作系统的爱恨情仇(初料)
    Linux与Windows操作系统的爱恨情仇(初料)更改时间:四种常见文件系统比较(FAT16、FAT32、NTFS、ExFAT)MMU内存管理单元Linux系统内核的作用Linux系统目录和Windows系统文件夹的区别1.四种常见文件系统比较(FAT16、FAT32、NTFS、ExFAT)FAT16、FAT32、NTFS和ExFAT是四......
  • 小白也能轻松玩转 Windows
    ......
  • windows安装cellchat
    检查包位置.libPaths('D:/R/R-4.3.1/library')确认R版本和包路径一致用R=4.3.1下载https://github.com/jinworks/CellChat安装cellchat前根据说明安装依赖https://github.com/jinworks/CellChat切换到CellChat-master.zip所在位置,删掉zip/src里的.o.sosetwd('D:/R/R-4.3......
  • win10禁用Windows快捷键的方法
    1、打开注册表编辑器 2、在注册表编辑器中定位到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion 3、在advanced中新建字符串值,命名为DisabledHotkeys,然后对数值数据设置。 (1)如果想禁用一个快捷键,比如win+a(打开操作中心),就输入a(2)如果想一次禁用多个快捷......
  • vmi:获取 windows 系统硬件信息
    在之前开发windows应用程序时,为了实现一个注册码只能注册一台设备(只要不换机器一台电脑的设备序列号是唯一的),这时需要获取使用者电脑硬件的各种常见信息,如主板信息,cpu信息等,经过查询,模块vmi可以实现我的需求。vim简介WMI是一项核心的Windows管理技术,WMI作为一种规范和基础结构,通......