Visual studio 2010 msbuild引用具有不同配置的项目的项目

Visual studio 2010 msbuild引用具有不同配置的项目的项目,visual-studio-2010,visual-c++,msbuild,Visual Studio 2010,Visual C++,Msbuild,我有一些依赖于其他项目的VisualStudio项目,这些项目具有不同的配置 example: Project MyProject (Configuration: Release) References: Project LibA (Configuration: Release_DontLink) Project LibB (Configuration: Release 使用VisualStudio构建可以正常工作,因为用于不同项目的配置存储在解决方案文件中 但当我使用ms

我有一些依赖于其他项目的VisualStudio项目,这些项目具有不同的配置

example:
Project MyProject (Configuration: Release)
  References:
    Project LibA (Configuration: Release_DontLink)
    Project LibB (Configuration: Release
使用VisualStudio构建可以正常工作,因为用于不同项目的配置存储在解决方案文件中

但当我使用msbuild构建MyProject时,它构建了LibA的发布配置,这是不正确的。由于许多其他项目都使用LibA和LibB,所以我无法更改这些配置,我只能控制我的项目

是否有任何方法可以在不更改LibA和LibB项目的情况下使用MsBuild构建MyProject

可能是相关的问题:,但是我没有完全理解答案,我认为这需要我在解决方案级别(即:MyProject.sln)上更改LibA/LibB

,打开属性页,并将
发布
配置设置为构建
发布
项目的配置
LibA
。如果您无法控制sln文件,则应该能够创建它的副本(即:MyProject.Release.sln)

然后使用以下内容构建解决方案:

msbuild MyProject.sln /p:Configuration=Release
或者,在生成
MyProject
build
LibA
并覆盖其
OutDir
属性后(甚至不是一种远程最佳做法):

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

我也遇到了同样的问题,发现需要对所有配置的平台进行解决方案配置。

这就是我已经在做的。。。这导致LibA也是使用Release构建的,虽然它应该使用Release_DontLinkyes构建,但在解决方案文件上调用msbuild to可能会起作用,目前我调用它来构建MyProject.vcxproj。我将需要做一些额外的解决方案文件,但这将是确定的。我明天会试试这个。好的,这个奏效了。我必须创建一个新的解决方案MyProject.sln,因为我的主解决方案包含更多的项目,我不想每次构建MyProject时都构建这些项目,但它的缺点是我现在必须维护两个解决方案(如果我为MyProject添加额外的依赖项,我将不得不手动将其添加到两个解决方案中)对于对此感兴趣的任何人,似乎可以通过指定
/t:[project\u name]
开关来避免维护2个解决方案文件,例如,如果LibB依赖于LibA,则可以执行
msbuild solution.sln/t:LibB/p:Configuration=“Release”