2013-07-22 30 views
0

在我的工作场所,有一个特定的项目在编译之前有几个依赖关系。 我会说得更simpliar场景:MSBuild C++ - 制作一个用于制作自动化构建的XML脚本

比方说,我们有项目:A,B,C,d

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

我们知道我们有专业的自动化工具,但是我的经理想用MSBuild一次编译这些依赖关系。

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

我能做什么?????????请帮助:)

+2

究竟如何使用正确配置的解决方案文件(的.sln) *不*提供你想要达到的目标?也许我错过了一些明显的东西(不会是第一次)。 – WhozCraig

+0

@WhozCraig说。或者只写一个msbuild脚本,以正确的顺序构建项目? – stijn

回答

1

假设VS2012,因为我不能rememeber什么2010支持:

您可以通过GUI设置了解决方案,并添加项目,然后设置为通过右键点击依赖的解决方案 - >选择“Project Dependencies ...”并设置你的依赖关系。 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,但你要调查这些选项...