2012-06-25 159 views
3

我有依赖于其他项目,有不同的配置一些Visual Studio项目。的MSBuild项目引用的项目具有不同配置

example: 
Project MyProject (Configuration: Release) 
    References: 
    Project LibA (Configuration: Release_DontLink) 
    Project LibB (Configuration: Release 

使用Visual Studio构建工作正常,因为用于不同项目的配置存储在解决方案文件中。

但是当我使用的MSBuild建立MyProject的,它建立力霸的发布配置,这是不正确。由于LibA和LibB都被许多其他项目使用,所以我不能改变这些配置,我只能控制MyProject。

有什么办法来建立使用的MSBuild不改变力霸和LibB项目MyProject的?

可能相关的问题:Configuration for ProjectReference in MSBuild,但是我没有完全理解的答案,我认为这将需要我改变力霸/ LibB

回答

2

在解决方案级别(即:MyProject.sln),打开属性页面并设置Release配置来构建项目LibARelease_DontLink配置。如果你没有在SLN文件控制,你应该能够创建一个副本(即:MyProject.Release.sln)。

sln properties

然后建立与解决方案:

msbuild MyProject.sln /p:Configuration=Release 

或者(丝毫没有最好的做法),建筑MyProject构建LibA后,同时覆盖了OutDir属性:

msbuild LibA.csproj /p:Configuration=Release_DontLink;OutDir=..LibA\Release 
+0

多数民众赞成在什么我已经在做......这就导致LibA与发布编译,而它应该与Release_DontLink构建 – smerlin

+0

是的,调用msbuild的解决方案文件可能工作,目前我称它为构建MyProject .vcxproj。我需要制作一些额外的解决方案文件,但那样会好的。我明天会试试这个。 – smerlin

+0

确定这工作。我不得不创建一个新的解决方案MyProject.sln,因为我的主要解决方案包含了很多项目,我不希望建立每次我建立MyProject的,但它与我现在保持2个解决方案的缺点作品(如果我添加MyProject的附加依赖项,我将不得不将它添加到这两个解决方案手动) – smerlin

0

我只是遇到同样的问题,发现解决方案配置需要完成f或所有配置的平台。

相关问题