Есть ли способ изменить файл.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 раздел пустой?

Я пытаюсь проанализировать это, чтобы попытаться разобрать его, а затем изменить его. Но я не могу понять половину происходящего.

Кроме того, я не знаю, есть ли доступный парсер для решения этой задачи.

Любое руководство для этого будет оценено.

0 ответов

Другие вопросы по тегам