Pre-build task of Visual Studio project fails in GitLab Runner(在GitLab Runner中,Visual Studio项目的预生成任务失败)
问题描述
我已经编写了一个Python3脚本,它创建了一些Qt资源(.rcc)
和头文件(.h)
。
因为此脚本将在Windows和MacOS上执行,所以我将Qt工具路径基于名为QTBIN的环境变量,该环境变量指向Qt安装文件夹中的二进制文件夹。
到目前为止,在终端(Windows和Mac)手动调用脚本时一切正常。
然后我将该脚本添加为Visual Studio 2019中的预生成事件:
python $(ProjectDir)ScriptsgenerateQtUI.py
到目前为止,一切都很好。它在本地运行时由Visual Studio和Xcode执行。
现在,因为我们使用GitLab构建服务器来构建这两个项目,所以这应该很好。 这是由Windows GitLab运行程序执行的msbuild命令:
- msbuild -m project.sln /t:project /p:Configuration=Debug /p:Platform=x64 /p:PreferredToolArchitecture=x64 -noWarn:C4244 -noWarn:C4267 -noWarn:C4099 -noWarn:C4305 -noWarn:C4018
然而,MacOS和Windows构建服务器都在抱怨。当然,我已经向两个构建服务器添加了新的环境变量。
Windows生成服务器返回此错误日志片段:
C:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildMicrosoftVCv160Microsoft.CppCommon.targets(139,5): error MSB3073: The command "python C:GitLab-RunneruildsUthz1X_B companyproductScriptsgenerateQtUI.py [C:GitLab-RunneruildsUthz1X_B companyproductproject.vcxproj]
C:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildMicrosoftVCv160Microsoft.CppCommon.targets(139,5): error MSB3073: [C:GitLab-RunneruildsUthz1X_B companyproductproject.vcxproj]
C:Program Files (x86)Microsoft Visual Studio2019ProfessionalMSBuildMicrosoftVCv160Microsoft.CppCommon.targets(139,5): error MSB3073: :VCEnd" exited with code 9020. [C:GitLab-RunneruildsUthz1X_B companyproductproject.vcxproj]
200 Warning(s)
1 Error(s)
Time Elapsed 00:01:10.92
ERROR: Job failed: exit status 1
脚本看起来甚至没有启动,因为它有自己的输出,通常会写入到控制台。
Windows上的GitLab运行器实例是使用外壳执行器设置的,外壳是PowerShell。
您对生成服务器生成解决方案失败的原因有什么看法吗?
注意:在本例中,Windows生成服务器和开发计算机是同一台计算机。
其他测试
我尝试直接从构建作业配置调用HelloPython.py脚本。这将返回一个权限错误,告知作业无权访问临时文件夹,尽管GitLab Runner已作为服务使用default configuration(根用户)安装。
$ whoami
nt authoritysystem
$ python Scripts/HelloPython.py
Program 'python.exe' failed to run: Systemet kan ikke f� adgang til filenAt C:WINDOWSTEMPuild_script885294397scrip
t.ps1:183 char:1
+ python Scripts/HelloPython.py
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
At C:WINDOWSTEMPuild_script885294397script.ps1:183 char:1
+ python Scripts/HelloPython.py
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedException
+ FullyQualifiedErrorId : NativeCommandFailed
ERROR: Job failed: exit status 1
推荐答案
好吧,我没有看到这一点:权限问题原来是安装的问题。它只为当前用户安装,而不是所有用户。在安装过程中,我选择了:为所有用户安装Python Launcher。但这并不允许所有用户都使用Python
为解决此问题,我重新安装了Python,选择了自定义安装,并选择了选项:所有用户。
事实证明,这也是GitLab生成作业的解决方案。
吸取的教训
- 始终确保"为所有用户安装"实际上是针对预期的软件。
- 不要太深入地研究错误消息-它可能是错误的或具有误导性的。
这篇关于在GitLab Runner中,Visual Studio项目的预生成任务失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在GitLab Runner中,Visual Studio项目的预生成任务失败
- 合并具有多个索引和列值的数据帧 2022-09-22
- 如何命名HDF5数据集中的列? 2022-09-21
- 如何将属性添加到作为组存储在HDF5文件中的 pa 2022-09-21
- 获取多索引中某个级别的最后一个元素 2022-09-22
- 为什么切换屏幕在Kivy中不起作用? 2022-09-21
- 使用带有CROSS_VAL_SCORE的自定义估计器失败 2022-09-21
- 基于多个一级列的子集多索引DataFrame 2022-09-22
- H5py:如何在HDF5组和数据集上使用key()循环 2022-09-21
- 如何防止Groupby超越指数? 2022-09-22
- 将文件从Azure文件加载到Azure数据库 2022-09-21