По сути, я хочу, чтобы одна из моих папок
появляются над другими папками в виде
тип «специальной папки», аналогичный
как у свойств есть свои особенности
место, хотя это папка, то же самое
с App_Data и т. д.
Возможно ли это?
Да
- Делать это вручную через IDE
- Напишите свой собственный скрипт
создать / изменить ваш
*.sln
/ *.vcproj
Для (1) «руководства» по решениям в IDE: Solution Explorer
, right-click
для Solution node
==> Add
==> New Solution Folder
.
Хотя обычно папки сортируются в алфавитном порядке (я бы вставил нижнее подчеркивание, чтобы переместить вашу специальную папку вверх), папки с решениями, вставленные вручную в мой MSVS2008, оставляют новую папку «вверху», хотя она должна иметь наткнулся при сортировке по алфавиту. Однако папки с Project
(которые называются "Filters
") всегда сортируются в алфавитном порядке и добавляются аналогичным образом при щелчке правой кнопкой мыши, а затем вы можете изменить их "свойства фильтра" с помощью глобусов с именами файлов для того, что вы хотите там (например, добавьте глобус фильтра для "*.MY_EXTENSION1;*.MY_EXTENSION2
").
Мы выбрали (2), и мы генерируем наши собственные *.sln
и *.vcproj
, добавляя наши собственные папки / фильтры. Я не видел каких-либо утилит в Интернете, чтобы помочь с этим (поэтому мы должны были написать свои собственные). Форматы не слишком сложны для обратного инжиниринга, но это в значительной степени недокументированный XML, поэтому вам придется экспериментировать. Есть только пара хороших веб-статей, объясняющих, что находится в файле, например:
http://tim.oreilly.com/pub/a/dotnet/excerpt/vshacks_chap1/index.html?page=4
С другой стороны, файлы - это только XML, поэтому при разработке наших сценариев мы просто вносили изменения в IDE, сохраняли и сравнивали "diffs" с тем, какое изменение мы хотим. Эти изменения - то, что наши сценарии вставляют, когда мы изменяем наши файлы. Таким образом, если вы измените файл вручную, вы также можете просто "diff
" файл, чтобы увидеть, что изменилось, и создать свой собственный скрипт. (ИМХО, это самый быстрый и простой маршрут, поскольку обычно не существует инструментов для манипулирования этими файлами.)
Такие инструменты, как CMake
и QMake
, генерируют *.vcproj
/ *.sln
, но на самом деле не нужно настраивать папки, как вы говорите. Тем не менее, мы также смотрим на их вывод, потому что «в этих файлах есть несколько способов сделать что-то, и файлы, кажется, имеют много недокументированных возможностей для выполнения разных умных вещей, которые каким-то образом эти инструменты« обнаружили »(так что вы может попытаться скопировать их сгенерированный вывод).
Мы обнаружили, что API .NET для работы с этими файлами слишком трудоемки, и на самом деле не предназначены для такого типа манипуляций, но YMMV.