【问题标题】:MSBuild C++ - Making an XML script for making automated buildsMSBuild C++ - 制作用于自动构建的 XML 脚本
【发布时间】:2013-07-23 00:02:17
【问题描述】:

在我的工作场所,有一个特定的项目在我们编译之前有几个依赖项。 我会用更简单的场景来描述它:

假设我们有项目:A、B、C、D

关于 A、B,在编译每个项目时,我们会得到一个 lib 文件(静态库)。 假设为了编译项目 C,我们需要编译项目 A,B。 我们编译项目 C 后,它作为项目 D 的静态库。 然后我们编译项目 D 来运行应用程序。

我们知道我们拥有专业的自动化工具,但我的经理希望使用 MSBuild 立即编译这些依赖项。

这些项目是用 C++ 编写的,我在 MSDN 中找到的唯一参考资料是 C# 或 VB。

我该怎么办?????????请帮忙:)

【问题讨论】:

  • 使用正确配置的解决方案文件 (.sln) not 究竟如何实现您想要实现的目标?也许我错过了一些明显的东西(不会是第一次)。
  • @WhozCraig 所说的。还是只编写一个 msbuild 脚本以正确的顺序构建项目?

标签: c++ msbuild automation dependencies projects


【解决方案1】:

假设 VS2012,因为我不记得 2010 支持什么:

您可以通过 GUI 设置解决方案并向其中添加项目,然后通过右键单击解决方案设置依赖项 -> 选择“项目依赖项...”并设置您的依赖项。 MSBuild 可以很好地构建 sln 文件。

或者(以及我们所做的)是手动编辑 vcxproj 文件,以通过项目组中的项目引用指定它们的依赖关系。这意味着您不需要 sln 文件,只要构建任何项目都会在必要时自动构建其引用项目。

<ProjectReference Include="PathTo.vcxproj">
  <Project>GuidOfProject</Project>
  <Name>Name</Name>
  <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
  <LinkLibraryDependencies>false</LinkLibraryDependencies>
  <UseLibraryDependencyImports>false</UseLibraryDependencyImports>
</ProjectReference>

根据您的描述,您可能希望将 LinkLibraryDependencies 设置为 true,但您需要调查这些选项...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2011-04-19
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    相关资源
    最近更新 更多