我正在整理Visual Studio中的项目布局,我想知道是否存在将.xml文件与同名.cs文件相关联的任何hack,插件或技巧,因此它们在我的解决方案导航器中分组显示/资源管理器。
类似于将代码隐藏文件与其aspx关联的方式。
任何建议欢迎。谢谢
Answers:
在您的项目文件中:
<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>
如果您不想使用笨拙且专有的VSCommands扩展来降低IDE的速度,则可以改用小型扩展NestIn。只能对文件进行分组/取消分组
对于文件是“顶级”文件的简单情况,Julien的描述非常有效。但是,如果DependentUpon文件位于项目下的Folder中,则外观会有所不同。我个人不喜欢它,因为它似乎可能导致歧义,但这是一种观点。
<Compile Include="DataStructs\CKDTree.cs" />
<Compile Include="DataStructs\CClosestObjects.cs" >
<DependentUpon>CKDTree.cs</DependentUpon>
</Compile>
请注意,从属项不包括父项的文件夹。这在VS2013中是正确的……在早期版本中可能是正确的,但我尚未对其进行验证。
DependentUpon
元素却具有相同元素的子元素,可以证实这一假设。但是,正如我在下面的答案中所指出的那样,这破坏了VS重命名文件的能力,因此请谨慎行事。
不知道人们是否知道,但是这样嵌套文件似乎破坏了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
无论如何,这足以让我们放弃这样的嵌套文件。没有重命名的能力,那是不值得的。
.cs
。