3

我有一些依赖于其他项目的视觉工作室项目,这些项目具有不同的配置。

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

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

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

有没有办法在不更改 LibA 和 LibB 项目的情况下使用 MsBuild 构建 MyProject?

可能相关的问题:MSBuild 中 ProjectReference 的配置,但是我没有完全理解答案,我认为这需要我更改 LibA/LibB

4

2 回答 2

2

在解决方案级别(即:MyProject.sln),打开属性页并设置Release配置以构建Release_DontLink项目配置LibA。如果您无法控制 sln 文件,您应该能够创建它的副本(即:MyProject.Release.sln)。

sln 属性

然后构建解决方案:

msbuild MyProject.sln /p:Configuration=Release

或者(甚至不是最佳实践),在构建MyProject构建LibA并覆盖其OutDir属性之后:

msbuild LibA.csproj /p:Configuration=Release_DontLink;OutDir=..LibA\Release
于 2012-06-25T16:31:27.937 回答
0

我刚刚遇到了同样的问题,发现需要为所有配置的平台完成解决方案配置。

于 2017-08-31T14:20:06.450 回答