我有一个包含4个项目的解决方案:
查看general documentation,C# Travis CI docs和C++ docs无法解决如何解决此类多语言项目问题。
我可以为C ++库和包装器创建CMake项目。但接下来我该怎么做,如何解决下一个问题:
答案 0 :(得分:3)
如果您使用Visual Studio构建C ++ / C#/ VB /其他解决方案,则应使用MSBuild作为CI构建工具。 请参阅:https://msdn.microsoft.com/en-us/library/dd393574.aspx
MSBuild可用于在Visual Studio(.csproj,.vbproj,vcxproj等)中构建项目文件。但是,不建议这样做。相反,MSBuild应该直接构建Visual Studio解决方案(.sln)。主要原因是这种方式Visual Studio IDE(由开发人员使用)和MSBuild命令行(由CI系统使用)以完全相同的方式构建解决方案。其次,在IDE中使用Configuration Manager更改项目时,更改配置将只在一个位置。
MSBuild XML脚本示例:
<Target Name="BUILD_SOLUTION">
<MSBuild Projects="$(SOLUTION_NAME).sln" Properties="Configuration=Release;Platform=Win32"/>
<MSBuild Projects="$(SOLUTION_NAME).sln" Properties="Configuration=Release;Platform=x64"/>
</Target>
请记住设置项目依赖关系并检查项目构建顺序。例如,
MSBuild Properties="Configuration=x;Platform=y"
映射到Configuration Manager。请记住设置所有配置和平台组合:
答案 1 :(得分:0)
我建议您将Travis配置设置为C#(即language: csharp
)。有了这个,您的项目将集成到C#环境中,并带有所有必要的工具。对于您的两个C ++项目,安装强制工具应该不会太困难。它就像sudo apt-get install g++ cmake
(和其他必需的包)一样简单。您必须在install
文件的.travis
部分执行此操作。
注意:安装缺失软件包的确切方式可能会有所不同,具体取决于您使用the docker-based Travis infrastructure还是the legacy one。
然后,在script
部分,您可以使用cmake构建c ++项目,然后构建C#项目。