在Linux Jenkins上建立针对MSVC的项目

时间:2018-09-04 07:04:02

标签: jenkins visual-c++ archlinux

我有一台私人服务器,我一直在缓慢地为个人项目设置服务器,但是遇到了一些障碍。我的服务器正在运行Arch linux [我喜欢在这种情况下使用最新功能和进行简约的安装],并且我正在运行Jenkins,以便可以自动构建项目。我有一个正在进行的项目,当前使用MSVC瞄准Win32 / 64平台,但是我似乎找不到任何有关在这种情况下在Jenkins上建立工作的信息。我希望我可以设置一个能够提供MSVC工具链的Docker实例,尤其是因为Visual Studio Code适用于Linux,并且我可以将其作为Jenkins设置的一部分来为我生成Win二进制文件,以便在我的主机上测试。我之所以这样说是因为,Visual Studio自然不是命令行实用程序,并且当前我的服务器是纯无头安装程序,仅提供cli交互,因此,如果可能的话,我想避免将GUI软件包直接添加到服务器,但是如果这样做的话是唯一的方法,我愿意这样做。真的没有办法实现我的目标吗?

很抱歉,如果该信息缺少重要信息或格式不正确,这是我第一次在这里提出问题,因为对我来说,在一个已经存在的问题中找不到所需的信息非常罕见。

2 个答案:

答案 0 :(得分:0)

我不能完全回答这个问题,但是这个话题对我也很有趣。

注意:Visual Studio Code是开源的,但这是基于Electron的编辑器。 Visual Studio IDE和MSVC是专有的Windows专用应用程序。


网站https://blog.sixeyed.com/how-to-dockerize-windows-applications/建议可以对包括Visual Studio在内的Windows应用进行Docker化。

  

用于Windows应用程序的Docker映像必须基于microsoft / nanoserver或microsoft / windowsservercore,或基于其中一个映像。

一旦工作正常,我将使用Visual Studio命令行构建,例如devenv /build file.sln [optionally /project file.vcxproj ]。 (https://docs.microsoft.com/en-us/visualstudio/ide/reference/devenv-command-line-switches?view=vs-2017)。


请注意,VS2017安装程序无法在Wine上运行。我最近为此提交了一个错误(https://bugs.winehq.org/show_bug.cgi?id=45749,之后是https://bugs.winehq.org/show_bug.cgi?id=45757)。


我个人使用Appveyor来自动构建MSVC应用程序。 Appveyor是基于Windows的集中式云服务,而不是自托管的CI系统。

答案 1 :(得分:0)

经过研究,由于对docker提供的确切信息的误解,目前尚无法实现。 Docker仅使用底层操作系统来提供所有内容,而不提供外部操作系统的任何虚拟化。如果没有可以在linux上运行的MSVC工具链版本,或者可能没有使用WINE,就无法实现缺少VM的方法。由于WINE并不完美,因此对我来说,最可靠的解决方案是VM,但YMMV。使用VM的另一个优点是,我可以使服务器保持无头状态。

相关问题