在Visual Studio中分组文件

问题描述 投票:74回答:5

我正在考虑在Visual Studio中整理我的项目布局,我想知道是否有任何黑客,插件或技巧将.xml文件与同名的.cs文件关联起来,以便它们出现在我的解决方案导航器中/探险。

与代码隐藏文件与其aspx关联的方式类似。

欢迎任何建议。谢谢

visual-studio
5个回答
70
投票

在您的项目文件中:

<Compile Include="FileA.cs"/>
<Compile Include="FileA.xml">
  <DependentUpon>FileA.cs</DependentUpon>
</Compile>

或者你可以使用Group Items扩展的VSCommands 2010命令。

编辑:如果您的文件位于文件夹中,请不要在DependentUpon标记中包含文件夹名称。例如,如果您的文件位于Helpers文件夹中:

<Compile Include="Helpers\FileA.cs"/>
<Compile Include="Helpers\FileA.xml">
  <DependentUpon>FileA.cs</DependentUpon>
</Compile>

57
投票

如果您不想通过繁重的专有VSCommands扩展来减慢IDE的速度,可以使用小扩展NestIn。它只能分组/取消组合文件


2
投票

对于文件是“顶级”文件的简单情况,Julien的描述完美无缺。但是,在DependentUpon文件位于项目下的文件夹中的情况下,这看起来不同。我个人不喜欢它,因为它似乎可能导致歧义,但这是一种观点。

<Compile Include="DataStructs\CKDTree.cs" />
<Compile Include="DataStructs\CClosestObjects.cs" >
    <DependentUpon>CKDTree.cs</DependentUpon>
</Compile>

请注意,依赖项不包括父项的文件夹。在VS2013中也是如此...在早期版本中可能是这样,但我还没有验证它。


0
投票

不确定人们是否知道,但是这样的嵌套文件似乎打破了VS重命名根文件的能力,至少当你的新嵌套文件也是部分类时。例如,这是我们创建的树...

MainWindow.xaml
    MainWindow.xaml.cs
    MainWindow.Commands.cs

MainWindow.Commands.cs只是MainWindow的另一个部分类,与MainWindow.xaml.cs相同。但是,如果您尝试重命名MainWindow.xaml,而不是自动重命名依赖文件,则会抛出异常。

为了完整起见,我还尝试命名文件MainWindow.xaml.Commands.cs,但这也不起作用。

没有额外的'命令'文件,重命名当然可以正常工作。

MainWindow.xaml
    MainWindow.xaml.cs

无论如何,这足以让我们放弃像这样的嵌套文件。如果没有重命名的能力,那就不值得了。


0
投票

视觉工作室的File Nesting扩展是一个很好的。在撰写此答案时,它的下载量约为500K。我亲自将它添加到我的VS 2015并且它工作正常(尚未尝试过VS 2017)。

© www.soinside.com 2019 - 2024. All rights reserved.