【发布时间】:2011-09-09 05:10:13
【问题描述】:
我们有一个解决方案文件,其中包含一些解决方案文件夹:库、单元测试、应用程序等。
使用Visual Studio 2010,我们可以通过右键单击给定文件夹并使用“build”或“rebuild”来仅构建给定文件夹的项目。
这在开发人员的工作站上是完美的,我们希望在使用 MSBuild 的持续集成服务器上做同样的事情。
那么,我们可以使用 MSBuild 构建解决方案文件夹吗?
或者我们是否必须为每个文件夹创建一个专门的解决方案?
以下回复的结论是,没有任何内置方法可以做到这一点,但有一些解决方法:
- 创建一个专门的解决方案,仅包含选定的项目,
- 使用专用的 csproj 来构建选定的项目,
- 在现有解决方案文件中添加一个将引用所选项目的新项目。
我选择使用专用的解决方案文件,因为它的侵入性和技巧性更小,虽然不是更灵活(专用的 .csproj 解决方案应该提供完全控制)。
【问题讨论】:
-
有很多方法可以获得这种能力,但不是解决方案的解决方案文件夹。意识到解决方案文件是 MSBuild 中的二等公民。如果您愿意在解决方案之外进行一些替代自定义,有办法做您想做的事,这是一种选择吗?
-
@Spider M9:感谢您花时间查看我的问题。欢迎任何选项,特别是如果比为每个文件夹使用专用解决方案文件更简单。
-
@Serious 确定一下:您想从解决方案中构建单个项目?
-
@Filburt:我想构建一组位于解决方案文件夹中的项目,而不仅仅是一个。
-
当您构建解决方案时,它应该构建所有项目(甚至是解决方案文件夹中的项目),除非它们被排除在当前配置之外。同样,您可以通过在 .sln 文件上运行 msbuild 从命令行构建解决方案(及其所有项目)。您能否详细介绍一下您面临的问题?
标签: visual-studio visual-studio-2010 msbuild continuous-integration solution