2011-12-11 136 views
12

MS Visual Studio有解决方案资源管理器,我可以在其中查看所有项目文件,我也可以创建类似文件夹的过滤器,以便将它们保存在一个组中。问题是 - 我希望我的文件在Visual中和物理上分在我的磁盘上。但我不想在Visual和磁盘上都应用两次更改。有没有什么办法可以显示实际的文件夹,我可以在Visual Solution Explorer中将文件保存在磁盘上(并且不显示所有文件,我刚刚检查过)?Visual解决方案资源管理器中的实际文件夹?

+0

对于我来说,“显示所有文件”的作品,如果该项目文件中的所有源文件的父文件夹,但如果项目文件在其自己单独的文件夹。 – entheh

回答

4

否 - SE和备案制度持有的结构/层次结构信息的独立拷贝。

我通常会禁用过滤器并将文件放在我想要的地方,这样两个结构默认保持同步(事实上,如果您想拥有任何类型的源代码组织,总是将组件的文件分组到不同的文件夹中)。

然后(禁用过滤器)...

如果您在Solution Explorer中的文件夹,并使用上下文菜单从该文件夹“添加新项...”或“添加现有项目”,然后磁盘结构将反映解决方案资源管理器(现有项目被复制而不是从他们当前所在的位置引用来确保这一点,如果您将其添加到错误的SE文件夹中,可能会导致文件的旧副本留在项目周围)。否则,通常只有当您“添加为链接”时,VS才会将某个项目放入SE中的其他文件夹中,而不会出现在磁盘上。

整理东西,最简单的方法是(制作备份以防万一以后):

  • 打开解决方案和文件探险家和手动“差异”他们。这是“错误的”的任何文件应该从SE被删除,移动到正确的磁盘位置,然后使用上下文菜单正确的SE文件夹加入SE
  • 如果没有太多的文件夹,一个简单的方法是刚刚从Solution Explorer中删除所有文件,然后将它们添加(每次一个文件夹)回项目,确保您在创建正确的文件夹名称去,并从每个文件夹的上下文菜单添加。通过从头开始重建SE,您可以很快地同步这两种布局,而且这往往比试图找出差异所在的位置更容易。

一旦它们同步,只能使用SE来管理文件,并且要小心使用正确的文件夹中的上下文菜单添加项目。如果你在磁盘上移动东西,你会破坏链接。

+1

请注意,这仅适用于C/C++项目。 C#项目确实具有文件的1对1映射。 –

+0

@Sebastiaan:是的,我可以想到两个例外:1)当你把文件添加为“链接”时,它们不需要1:1的映射(但是这些映射显示为明显的链接图标)。2)1:1映射适用于项目内,但项目本身(解决方案内)不需要1:1路径映射。 –

2

如果单击“显示所有文件”从显示的文件的物理过滤的文件虚拟滤波器开关解决方案资源管理器。

+2

OP在问题中已经声明这个解决方案不起作用。 – psubsee2003

0

通过过滤器我想你指的是解决方案文件夹。这些虚拟文件夹与文件系统无关。我做的一个诀窍是制作一个扔掉的项目。添加到项目文件夹的项目保持其关系。这是一个黑客,但它的工作。如果有人知道这种做法不太古怪,我也很想知道。

相关问题