如何在解决方案中加载/卸载多个项目?

11
我们的解决方案中大约有50个项目,这是一个很大的时间消耗。加载/卸载项目功能是一个很好的帮助工具,但由于存在许多项目和许多依赖关系,该过程很慢且繁琐。
我想要有“项目模板”或“预设”。例如,我想要在项目D上工作,这意味着必须加载项目A、B和C,并卸载其它所有项目。如果我想要在项目W上工作,那么从A到W的所有项目都必须被加载。
这种方式是否可行?活动的“模板”通常每天会更改几次。

你不能制作多个解决方案吗?一个针对A,另一个针对B等等... - thumbmunkeys
怎么做呢?我们使用团队基础服务器进行源代码控制。所有项目都是一个解决方案(产品)的一部分,我们需要项目引用。 - Nezreli
2个回答

12

您至少有三个选项:

  • 使用解决方案文件夹。这些允许您以组为单位卸载/重新加载项目。只需创建一个解决方案文件夹,将一些项目移动到其中,并使用“卸载解决方案文件夹中的项目”上下文菜单项。
  • 使用宏。有示例可以完全做到这一点。
  • [Hacky/Speculation] 卸载的项目列表存储在.suo文件中,因此创建几个.suo文件并通过覆盖原始文件来在配置之间切换可能很方便。

这是一篇原始的博客文章,由一位前微软员工分享了相同的问题和解决方案。


2
Visual Studio 2019引入了一个新的概念叫做“解决方案筛选器文件”。

https://learn.microsoft.com/en-us/visualstudio/ide/filtered-solutions?view=vs-2019

您可以在卸载所需内容后右键单击解决方案,然后选择“另存为解决方案筛选器”。它会创建一个文件,其中包含要在打开时包括的项目列表。因此,如果添加了新项目,则不会被检测到。
另一个重要的功能是右键单击“显示未加载的项目”和右键单击“隐藏未加载的项目”。
FYI - 文件看起来像这样:
{
  "solution": {
    "path": "IvaraDotNet.sln",
    "projects": [
      "AssetManagement\\StaticLoad\\AssetManagementStaticLoad.vcxproj",
       ....
      "framework\\oqpersman\\oqpersman.vcxproj"
    ]
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接