在Visual Studio中分组文件

时间:2010-09-01 11:32:35

标签: visual-studio

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

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

alt text

欢迎任何建议。感谢

5 个答案:

答案 0 :(得分:70)

在您的项目文件中:

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

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

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

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

答案 1 :(得分:57)

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

答案 2 :(得分:2)

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

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

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

答案 3 :(得分:0)

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

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

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

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

没有额外的&#39;命令&#39;文件,重命名工作正常。

MainWindow.xaml
    MainWindow.xaml.cs

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

答案 4 :(得分:0)

视觉工作室的

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