Групповые файлы в Visual Studio

Я смотрю, как убирать макет проекта в Visual Studio, и мне интересно, есть ли какой-либо взлом, плагин или трюк, чтобы связать XML файл с .cs файлом с тем же именем, чтобы они отображались в моем навигаторе/проводнике решений.

Аналогично тому, как связанный с кодом файл связан с его aspx.

alt text

Любые предложения приветствуются. Благодаря

Ответ 1

В файле проекта:

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

Или вы могли бы использовать команду Group Items расширения VSCommands 2010.

Ответ 2

Если вы не хотите замедлять работу IDE с помощью расширенного расширения VSCommands, вы можете использовать небольшое расширение NestIn. Он не может ничего, кроме групповых/групповых файлов

Ответ 3

Для простого случая, когда файл является файлом верхнего уровня, описание Julien отлично работает. Однако в случае, если файл DependentUpon находится в папке в проекте, это выглядит иначе. Мне лично это не нравится, потому что похоже, что это может привести к двусмысленности, но это мнение.

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

Обратите внимание, что зависимый элемент НЕ включает папку родителя. Это верно в VS2013... вероятно, верно в более ранних версиях, но я не проверил его.

Ответ 4

Не уверен, что люди знают, но вложенные файлы вроде этого, по-видимому, нарушают способность 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

В любом случае, это было достаточной причиной для того, чтобы мы отказались от вложенных файлов, подобных этому. Без возможности переименования это просто не стоит.