我有一些Visual Studio项目,这些项目依赖于其他项目,这些项目具有不同的配置.
i have some visual studio projects which depend on other projects, which have different configurations.
example: Project MyProject (Configuration: Release) References: Project LibA (Configuration: Release_DontLink) Project LibB (Configuration: Release由于要用于不同项目的配置存储在解决方案文件中,因此使用Visual Studio进行构建可以正常工作.
Building using Visual Studio works correctly as the Configurations to be used for the different projects are stored inside the solution file.
但是当我使用msbuild构建MyProject时,它会构建LibA的Release配置,这是不正确的.由于LibA和LibB都被其他许多项目使用,因此我无法更改这些配置,因此只能控制MyProject.
But when i use msbuild to build MyProject, it builds the Release configuration of LibA, which is incorrect. Since both LibA and LibB are used by numerous other Projects, i cant change those configurations, i only have control over MyProject.
是否可以在不更改LibA和LibB项目的情况下使用MsBuild构建MyProject?
Is there any way to build MyProject using MsBuild without changing the LibA and LibB projects?
可能相关的问题:在MSBuild中配置ProjectReference ,但是我没有完全完成了解答案,我认为这需要我更改LibA/LibB
Possibly related question: Configuration for ProjectReference in MSBuild, however i did not fully understand the answer, and i think it would require me to change LibA/LibB
推荐答案在解决方案级别(即MyProject.sln)上,打开属性页并设置Release配置,以为项目
On the solution level (i.e: MyProject.sln), open the property pages and set the Release configuration to build Release_DontLink configuration for project LibA. If you don't have control over the sln file, you should be able to create a copy of it (i.e: MyProject.Release.sln).
然后使用以下方法构建解决方案:
Then build the solution with:
msbuild MyProject.sln /p:Configuration=Release或者,在覆盖OutDir属性的同时构建MyProject构建LibA之后,(甚至不是最佳实践):
Alternatively (not even remotely a best practice), after building MyProject build LibA while overriding its OutDir property:
msbuild LibA.csproj /p:Configuration=Release_DontLink;OutDir=..LibA\Release更多推荐
msbuild一个项目,该项目引用具有不同配置的项目
发布评论