gpt4 book ai didi

c# - 如何使用 Travis CI 构建混合 (C++ + C#) 解决方案?

转载 作者:IT老高 更新时间:2023-10-28 23:02:28 26 4
gpt4 key购买 nike

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

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

general documentation , C# Travis CI docsC++ docs不知道如何解决这样的多语言项目问题。

我可以为 C++ 库和包装器创建 CMake 项目。但是接下来我该怎么做,如何解决接下来的问题:

  • 如何仅编译 VS 解决方案中选定的项目?
  • 如何混合多种语言,应将哪些内容写入 Travis 配置(2 个 C++ 项目,2 个 C# 项目,运行测试,因此从 C++ 代码构建的 .so 必须与 C# 测试位于同一文件夹中)?

最佳答案

CI 构建工具 - MSBuild

如果您使用 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>

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

  • 在最终 EXE 项目之前构建的常用库;
  • 在相应的生产项目之后构建的单元测试项目。

Project Dependencies

Build Order

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

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

关于c# - 如何使用 Travis CI 构建混合 (C++ + C#) 解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32981114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com