当我在Visual Studio中卸载项目时,VS会将此设置保存在哪里?

35

我检查了解决方案文件和项目文件,没有找到任何与此设置相关的内容。当人们从TFS源代码控制中获取最新版本时,他们总是会看到“已加载”的状态,这并不是我想要的。

4个回答

36

这些信息存储在解决方案用户选项文件(.suo)中,您可以在与解决方案文件相同的目录中找到它。如名称所示,这是用户特定信息,这意味着跨团队共享将会很困难,因为每个人都需要使用相同的选项并将文件存储在确切的位置,因为.suo文件包含完整路径。


我比较了在'取消加载项目'操作前后的.suo文件,结果发现它们是相同的文件。因此,我猜测这些设置并未被存储在那里。 - Narutokk
1
我的错,我忘记保存整个解决方案。事实上,它保存在 suo 文件中。 - Narutokk
1
真遗憾,我需要将这个选项也检入源代码控制,因为我们的解决方案依赖于一些在解决方案之外的代码,只有特定的开发人员组才需要接触或拥有许可证。但是如果必须在两个解决方案中搜索,那么真的很不方便,如果可以将关键项目卸载并合并,那么默认情况下其他人就不必再费心处理该代码,但仍然留有选项供其他人轻松查看。 - jxramos

5
对于那些使用Visual Studio 2019的人,我的经验是项目的卸载已不再保存在SUO中。要保存卸载的项目设置,您需要创建一个解决方案筛选器文件(.slnf),它与解决方案文件(.sln)相同,但它存储了打开解决方案时要加载或不加载的项目。创建后,您将双击.slnf文件而不是.sln文件以加载您筛选出的项目。
要创建解决方案筛选器文件,您可以按照此链接中的说明或以下概述进行操作:
1. 打开您的解决方案(.sln) 2. 卸载您想要筛选掉的项目 3. 在“解决方案资源管理器”中右键单击该解决方案 4. 选择“另存为解决方案筛选器” 5. 选择一个位置保存该文件(我保存在我的.sln文件旁边)
这将向您最近打开的解决方案列表中添加.slnf文件,因此您可以从那里打开,或导航到.slnf文件并双击它。
如果您仍然想在打开.slnf后查看已卸载的项目,请在“解决方案资源管理器”中突出显示该解决方案,并单击“显示所有文件”图标。

1
但是,在遵循步骤1和2之后,您可以关闭VS并再次打开您的sln,然后卸载相同的项目,对吗?因此,尽管slnf可能是一种“持久化”这些设置的方法,但我不认为您已回答在执行步骤3-5之前它们被保存在哪里。 (我在同一个目录中没有suo文件,所以您关于它们移动的说法是正确的,但是_移动到哪里!?_ ; ^D - ruffin
1
看起来 .suo 已经移动到了 ./.vs 目录下,对于我来说是 .vs\[SolutionName]\v16\。slnfs 以 .vs\[SlnfName].slnf\v16\ 的形式拥有自己的文件夹。我的更改会影响加载内容。你的情况可能会有所不同。 - ruffin
我正在使用Visual Studio 2022(即版本17)。.suo文件仍然存在于.vs\[SolutionName]\v17目录下,但根据这个答案所说,现在你也可以使用*.slnf文件来控制加载哪些项目。这些文件可以随意命名并放置在计算机的任何位置,不一定要与*.sln文件放在一起。 - Alex Fainshtein
我正在使用Visual Studio 2022(即版本17)。.suo文件仍然存在于.vs\[SolutionName]\v17目录下,但根据这个答案所述,现在你也可以使用*.slnf文件来控制加载哪些项目。这些文件可以随意命名并放置在计算机的任何位置,不一定要与*.sln文件放在一起。 - undefined

0
在MacOS上使用Visual Studio 2022 for Mac(即v17.0预览版,“Visual Studio Community 2022 for Mac Preview”),我没有看到.sln.slnf文件。
我注意到未加载的项目保存在文件夹/.vs/[SolutionName]/xs/UserPrefs.xml中。当我关闭Visual Studio 2022 for Mac时,我发现UserPrefs.xml已保存。 UserPrefs.xml片段:
<DisabledProjects>
  <String>...</String>
</DisabledProjects>

0
基于this,如果你想通过源代码控制共享你的加载/卸载设置,你可以使用解决方案筛选文件,它的扩展名为.slnf。 因此,当你打开.slnf文件而不是.sln文件时,你将看到已经过滤的项目被加载。

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