首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何建立一个混合(C++ + C#)解决方案与特拉维斯CI?

如何建立一个混合(C++ + C#)解决方案与特拉维斯CI?
EN

Stack Overflow用户
提问于 2015-10-06 22:54:43
回答 2查看 2K关注 0票数 13

我有4个项目的解决方案:

  • C++ .lib "A“
  • C++ .dll (基于SWIG生成的包装器) "AWrapper“
  • C# .dll (基于SWIG生成的包装器) "ASharp“
  • 一个C#单元测试项目(默认,但我可以将它移植到NUnit) "ASharpTests“

一般文件C# Travis CI文档C++文档的角度看,如何解决这样的多语种项目问题是不可能的。

我可以为CMake库和wraper创建C++项目。但我下一步该做什么,如何解决下一个问题:

  • 如何只编译VS解决方案中选定的项目?
  • 如何混合多个加长,将哪些内容写入Travis配置(2个C++项目、2个C#项目,以运行来自C++代码的.so构建必须与C#测试位于同一个文件夹)?
EN

回答 2

Stack Overflow用户

发布于 2015-10-09 21:22:05

CI构建工具- MSBuild

如果使用Visual构建C++/C#/VB/其他解决方案,则应使用MSBuild作为CI构建工具。请参阅:https://msdn.microsoft.com/en-us/library/dd393574.aspx

MSBuild可用于在Visual中构建项目文件(.csproj、.vbproj、vcxproj等)。但是,不建议这样做。相反,MSBuild应该直接构建Visual解决方案(.sln)。主要原因是这样,Visual (由开发人员使用)和MSBuild命令行(由CI系统使用)构建解决方案的方式完全相同。其次,在IDE中使用configuration更改项目时,更改配置将位于一个和唯一一个位置。

MSBuild XML脚本示例:

代码语言:javascript
复制
<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>

记住设置项目依赖项并检查项目构建顺序。例如,

  • 在最终EXE项目之前建立的公共图书馆;
  • 在相应的生产项目之后建立的单元测试项目。

MSBuild Properties="Configuration=x;Platform=y"映射到配置管理器。请记住设置所有配置和平台组合:

  • 如果需要,选中(启用复选框)为每个项目上下文构建;
  • 未使用部署列。
票数 3
EN

Stack Overflow用户

发布于 2015-12-23 10:20:38

我建议您将您的Travis配置设置为C# (即。language: csharp)。这样,您的项目将与所有必要的工具集成在C#环境中。对于两个C++项目,安装强制工具应该不会太困难。它就像sudo apt-get install g++ cmake (和其他必需的包)一样简单。您必须在install文件的.travis部分执行此操作。

注意:安装缺少的软件包的确切方式可能会因使用基于码头的特拉维斯基础设施遗产之一而有所不同。

然后,在script部分,您可以使用cmake构建c++项目,然后构建C#项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32981114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档