代码改变世界

天行健,君子以自强不息

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

简介

如果用cd命令去了MsBuild.exe的安装目录,再找到源代码签出的目录就有难度了。

暂时解决方案如下:

variables:
  MSBUILD_PATH: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\MSBuild\\Current\\Bin" # 我的Msbuild.exe是在这个文件夹
  DAIV_OA_WEB_OUTPUT_DIR: /gitlab-runner/output/Daiv_oa/$CI_PIPELINE_ID
  BUILD_PATH: "X:\\gitlab-runner\\builds\\01\\x4Rcy3k1z\\0\\study\\daiv_oa\\" # 这里暂时是取巧了。“x4Rcy3k1z”这种参数也许能在Gitlab Runner的变量中获取?

build-job:
  stage: build
  tags: 
    - zhongfang-windows
  script:
    - echo "Compiling the code..."
    - echo $DAIV_OA_WEB_OUTPUT_DIR
    - echo $BUILD_PATH"Daiv_OA.Web\\Daiv_OA.Web.csproj"
    - echo $MSBUILD_PATH
    - cd $MSBUILD_PATH
    - .\msbuild.exe $BUILD_PATH"Daiv_OA.Web\\Daiv_OA.Web.csproj" /p:WebProjectOutputDir=$DAIV_OA_WEB_OUTPUT_DIR
    - echo "Compile complete."

作业日支如下:

$ echo $BUILD_PATH"Daiv_OA.Web\\Daiv_OA.Web.csproj"
X:\gitlab-runner\builds\01\x4Rcy3k1z\0\study\daiv_oa\Daiv_OA.Web\\Daiv_OA.Web.csproj
$ echo $MSBUILD_PATH
C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin
$ cd $MSBUILD_PATH
$ .\msbuild.exe $BUILD_PATH"Daiv_OA.Web\\Daiv_OA.Web.csproj" /p:WebProjectOutputDir=$DAIV_OA_WEB_OUTPUT_DIR
适用于 .NET Framework MSBuild 版本 17.9.8+b34f75857
生成启动时间为 2024/4/14 0:44:01。
节点 1 上的项目“X:\gitlab-runner\builds\01\x4Rcy3k1z\0\study\daiv_oa\Daiv_OA.Web\Daiv_OA.Web.csproj”(默认目标)。
PrepareForBuild:
正在创建目录“bin\”。
正在创建目录“obj\Debug\”。
项目“X:\gitlab-runner\builds\01\x4Rcy3k1z\0\study\daiv_oa\Daiv_OA.Web\Daiv_OA.Web.csproj”(1)正在节点 1 上生成“X:\gitlab-runner\builds\01\x4Rcy3k1z\0\study\daiv_oa\Daiv_OA.BLL\Daiv_OA.BLL.csproj”(2:2) (默认目标)。

……………………省略……………………

X:\gitlab-runner\builds\01\x4Rcy3k1z\0\study\daiv_oa\Daiv_OA.Web\TastCheck.aspx.designer.cs(166,27): error CS0400: 未能在全局命名空间中找到类型或命名空间名“Sisans”(是否缺少程序集引用?) [X:\gitlab-runner\builds\01\x4Rcy3k1z\0\study\daiv_oa\Daiv_OA.Web\Daiv_OA.Web.csproj]
X:\gitlab-runner\builds\01\x4Rcy3k1z\0\study\daiv_oa\Daiv_OA.Web\My_Summarize_List.aspx.designer.cs(40,27): error CS0400: 未能在全局命名空间中找到类型或命名空间名“Wuqi”(是否缺少程序集引用?) [X:\gitlab-runner\builds\01\x4Rcy3k1z\0\study\daiv_oa\Daiv_OA.Web\Daiv_OA.Web.csproj]
X:\gitlab-runner\builds\01\x4Rcy3k1z\0\study\daiv_oa\Daiv_OA.Web\Task_Add.aspx.designer.cs(112,27): error CS0400: 未能在全局命名空间中找到类型或命名空间名“Telerik”(是否缺少程序集引用?) [X:\gitlab-runner\builds\01\x4Rcy3k1z\0\study\daiv_oa\Daiv_OA.Web\Daiv_OA.Web.csproj]
X:\gitlab-runner\builds\01\x4Rcy3k1z\0\study\daiv_oa\Daiv_OA.Web\Task_Add.aspx.designer.cs(121,27): error CS0400: 未能在全局命名空间中找到类型或命名空间名“Telerik”(是否缺少程序集引用?) [X:\gitlab-runner\builds\01\x4Rcy3k1z\0\study\daiv_oa\Daiv_OA.Web\Daiv_OA.Web.csproj]
X:\gitlab-runner\builds\01\x4Rcy3k1z\0\study\daiv_oa\Daiv_OA.Web\Summarize_List.aspx.designer.cs(76,27): error CS0400: 未能在全局命名空间中找到类型或命名空间名“Wuqi”(是否缺少程序集引用?) [X:\gitlab-runner\builds\01\x4Rcy3k1z\0\study\daiv_oa\Daiv_OA.Web\Daiv_OA.Web.csproj]
140 个警告
35 个错误
已用时间 00:00:01.93
Cleaning up project directory and file based variables 00:00
ERROR: Job failed: exit status 1

问题很明显:就是确守一些第三方组件的dll。

MsBuild使用ReferencePath

build-job:       # This job runs in the build stage, which runs first.
  stage: build
  tags: 
    - zhongfang-windows
  script:
    - echo "Compiling the code..."
    - echo $DAIV_OA_WEB_OUTPUT_DIR
    - echo $BUILD_PATH"Daiv_OA.Web\\Daiv_OA.Web.csproj"
    - echo $MSBUILD_PATH
    - cd $MSBUILD_PATH
    - .\msbuild.exe $BUILD_PATH"Daiv_OA.Web\\Daiv_OA.Web.csproj" /p:ReferencePath=X:\study\ErpFiles /p:WebProjectOutputDir=$DAIV_OA_WEB_OUTPUT_DIR
    - echo "Compile complete."

网站终于在被Gitlab Runner在Windows上打包成功了:

img

下一篇:把打包好的网站传输到远程Windows服务器

posted on   终南山人  阅读(113)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示