Есть ли способ изменить файл.vssettings программно?
Ну, мне нужно немного руководства здесь, потому что я не знаю, выбираю ли я легкий / правильный путь для достижения того, что я буду делать.
Позвольте мне объяснить немного контекста того, что я пытаюсь:
Я пытаюсь использовать собственный проект, чтобы избежать избыточных данных, создаваемых подмодулями git (при использовании зависимостей (я не имею в виду пакеты NuGet, я имею в виду зависимости с открытым исходным кодом)), сохраняя эти проекты / зависимости в общей папке и затем ссылки на любой проект, который мне нужен (кто-то предложил мне, что это плохой дизайн, потому что новым разработчикам, которые хотят внести свой вклад в мои проекты с открытым исходным кодом, понадобится мой проект (тот, о котором я говорю), чтобы убедиться, что они возможность изменить и внести свой вклад в них).
По этой причине я понял, что единственный способ избежать этого - создать проект VSIX (чтобы избежать межплатформенных проблем), чтобы убедиться, что зависимости разветвленных проектов исправлены.
Но я хочу сохранить это легко, потому что я никогда не делал расширение VSIX. Итак, исследуя, я нашел эту тему (это касается того, как изменить Solution Explorer context menu
с помощью Tools > External Tools
меню и Tools > Customize...
именно это мне и нужно).
Проблема приходит сюда. Это нужно сделать вручную, и я хочу этого избежать.
Автоматизировать это - небольшая головная боль, потому что я не знаю, с чего начать.
Сначала я создал свою собственную привязку "External Tool" (на примере Sublime Text), затем с помощью "Подсистемы Ubuntu в Windows", и благодаря этому ответу я провел поиск с ag
введите ключевые слова, которые я использовал:
Затем, ag
привел меня в ~\AppData\Local\Microsoft\VisualStudio\<version>_<hash>\Settings\CurrentSettings.vsettings
файл, и я нашел следующие строки:
<Category name="Environment_ExternalTools" Category="{E8FAE9E8-FBA2-4474-B134-AB0FFCFB291D}" Package="{DA9FB551-C724-11d0-AE1F-00A0C90FFFC3}" RegisteredName="Environment_ExternalTools" PackageName="Visual Studio Environment Package">
<ExternalTools>
<UserCreatedTool>
<Arguments>$(ItemPath)</Arguments>
<CloseOnExit>true</CloseOnExit>
<Command>subl</Command>
<Index>3</Index>
<InitialDirectory>$(ItemDir)</InitialDirectory>
<IsGUIapp>false</IsGUIapp>
<NameID>0</NameID>
<Package>{00000000-0000-0000-0000-000000000000}</Package>
<PromptForArguments>false</PromptForArguments>
<SaveAllDocs>true</SaveAllDocs>
<Title>Sublime Text</Title>
<Unicode>false</Unicode>
<UseOutputWindow>true</UseOutputWindow>
<UseTaskList>false</UseTaskList>
</UserCreatedTool>
</ExternalTools>
</Category>
Затем я сделал третий шаг из первой темы, которую я связал, и проверил различия, созданные при сохранении, и это то, что VS сохраняет в свои настройки при использовании окна "Инструменты> Настроить...":
<UserCustomizations>
<add Cmd="{5EFC7975-14BC-11CF-9B2B-00AA00573819}:00000279" CmdPri="00308001" Group="{000AF700-CF09-4582-9E1C-2603403AB647}:00004115" GroupPri="00050000" Menu="{D309F791-903F-11D0-9EFC-00A0C911004F}:00000402"/>
<modify Cmd="{000AF700-CF09-4582-9E1C-2603403AB647}:00000407" CmdPri="00000000" Group="{000AF700-CF09-4582-9E1C-2603403AB647}:00004014" GroupPri="00050000" Menu="{D309F791-903F-11D0-9EFC-00A0C911004F}:00000402" BeginGroup="false"/>
<modify Cmd="{000AF700-CF09-4582-9E1C-2603403AB647}:00004225" CmdPri="00300000" Group="{000AF700-CF09-4582-9E1C-2603403AB647}:00004115" GroupPri="00050000" Menu="{D309F791-903F-11D0-9EFC-00A0C911004F}:00000402" BeginGroup="true"/>
<modify Cmd="{5EFC7975-14BC-11CF-9B2B-00AA00573819}:00000279" CmdPri="00308001" Group="{000AF700-CF09-4582-9E1C-2603403AB647}:00004115" GroupPri="00050000" Menu="{D309F791-903F-11D0-9EFC-00A0C911004F}:00000402" BeginGroup="true"/>
<modify Cmd="{B92A417B-195E-41E4-9391-64F7D025020D}:00000100" CmdPri="01000000" Group="{B92A417B-195E-41E4-9391-64F7D025020D}:00001020" GroupPri="00010000" Menu="{D309F791-903F-11D0-9EFC-00A0C911004F}:00000430" BeginGroup="false"/>
</UserCustomizations>
Я застрял в этой части, потому что я не нахожу никакого идентификатора GUID между этими двумя разделами XML.
Итак, я не знаю с чего начать, потому что я не нашел никакой документации для add
или же modify
тег, ни Cmd
, CmdPri
, GroupPri
или же Menu
атрибутов.
И почему Package
значение GUID тега из UserCreatedTool
раздел пустой?
Я пытаюсь проанализировать это, чтобы попытаться разобрать его, а затем изменить его. Но я не могу понять половину происходящего.
Кроме того, я не знаю, есть ли доступный парсер для решения этой задачи.
Любое руководство для этого будет оценено.