Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在linux Jenkins上构建一个针对MSVC的项目_Jenkins_Visual C++_Archlinux - Fatal编程技术网

在linux Jenkins上构建一个针对MSVC的项目

在linux Jenkins上构建一个针对MSVC的项目,jenkins,visual-c++,archlinux,Jenkins,Visual C++,Archlinux,我有一个私人服务器,我一直在慢慢地为个人项目设置,但我遇到了一些障碍。我的服务器运行的是Arch linux[我喜欢这种情况下的前沿和极简安装],我让Jenkins在上面运行,这样我就可以让它自动构建项目。我有一个项目,我一直在工作,目前是针对使用MSVC的Win32/64平台,但我似乎找不到任何关于在Jenkins上为这种情况设置作业的信息。我希望我可以设置一个Docker实例来提供MSVC工具链,特别是因为Visual Studio代码可用于Linux,并且我可以使用它作为Jenkins设置

我有一个私人服务器,我一直在慢慢地为个人项目设置,但我遇到了一些障碍。我的服务器运行的是Arch linux[我喜欢这种情况下的前沿和极简安装],我让Jenkins在上面运行,这样我就可以让它自动构建项目。我有一个项目,我一直在工作,目前是针对使用MSVC的Win32/64平台,但我似乎找不到任何关于在Jenkins上为这种情况设置作业的信息。我希望我可以设置一个Docker实例来提供MSVC工具链,特别是因为Visual Studio代码可用于Linux,并且我可以使用它作为Jenkins设置的一部分来生成Win二进制文件,以便在我的主机上进行测试。我提到这一点是因为VisualStudio自然不是命令行实用程序,而且目前我的服务器是纯无头设置,只提供cli交互,因此如果可能,我希望避免直接向服务器添加GUI包,但如果这是唯一的方法,我愿意这样做。真的没有办法实现我的目标吗


很抱歉,如果这缺少重要的细节或格式不好,这是我第一次在这里提问,因为我很少在已经存在的问题中找不到我要查找的信息。

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

注意:Visual Studio代码是开源的,但它是基于电子的编辑器。Visual Studio IDE和MSVC是专有的仅限Windows的应用程序


该网站建议可以对包括VisualStudio在内的Windows应用程序进行dockerize

Windows应用程序的Docker映像需要基于microsoft/nanoserver或microsoft/windowsservercore,或者基于其中之一的另一个映像

一旦开始工作,我将使用Visual Studio命令行构建,如
devenv/build file.sln[可选/project file.vcxproj]
。()


请注意,VS2017安装程序在Wine上不起作用。我最近为此提交了一个bug(后面是)



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

经过研究,目前不可能做到这一点,因为它源于对docker提供的确切内容的误解。Docker只是使用底层操作系统来提供一切,并不提供任何外国操作系统的虚拟化。如果没有一个可以在linux上运行的MSVC工具链版本,或者可能没有WINE的使用,那么就没有办法实现VM的短缺。由于葡萄酒并不完美,我认为最可靠的解决方案是VM,而不是YMMV。使用虚拟机的另一个好处是,我可以保持服务器无头。

谢谢,我查看了用于停靠windows应用程序的链接,但教程暗示希望在windows主机上运行Docker。我还在调查,但到目前为止我什么也没找到。它看起来越来越像我需要在上面运行一个虚拟机,这是我非常希望避免的。我还没有签出Appveyor,如果它是基于linux的应用程序,它可能会做我需要的事情,尽管我会很犹豫,这取决于它是如何实现的。Appveyor是基于windows的托管云服务,不是可安装的CI系统。
Visual Studio不是命令行实用程序
这不正确。VisualStudioIDE使用的编译器可以很容易地在命令行上使用,我们每天都这样做。