Есть ли способ изменить файл .vssettings программно? - PullRequest
0 голосов
/ 29 января 2019

Ну, мне нужно немного руководства здесь, потому что, я не знаю, выбираю ли я легкий / правильный путь для достижения того, что я буду делать.

Позвольте мне немного объяснитьконтекста того, что я пытаюсь:

Я пытаюсь использовать собственный проект, чтобы избежать избыточных данных, создаваемых подмодулями git (при использовании зависимостей (я не имею в виду пакеты NuGet, я имею в видузависимости с открытым исходным кодом)), сохраняя эти проекты / зависимости в общей папке, а затем ссылаясь на любой проект, который мне нужен (кто-то предложил мне, что это плохой дизайн, потому что новые разработчики хотят внести свой вклад в мои проекты с открытым исходным кодомпонадобится мой проект (тот, о котором я говорю), чтобы убедиться, что они могут изменять и вносить в него свой вклад).

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

Но я хочу, чтобы это было легко, потому чтоЯ никогда не делал расширение VSIX.Итак, исследования, которые я обнаружил в этой теме (это относится к тому, как изменить Solution Explorer context menu с помощью Tools > External Tools меню и Tools > Customize..., что мне и нужно).

Проблема возникает здесь.То, что это нужно сделать вручную, и я хочу этого избежать.

Автоматизация - это небольшая головная боль, потому что я не знаю с чего начать.

Сначала я создал свой собственный "Внешний"Инструмент «Привязка» (используя 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>

I 'Я застрял в этой части, потому что я не нахожу никакого идентификатора GUID между этими двумя разделами XML.

Итак, я не знаю с чего начать, потому что я не нашел никакой документации для addили modify тег, ни Cmd, CmdPri, GroupPri или Menu атрибутов.

И почемуPackage значение GUID тега из UserCreatedTool раздела пусто?

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

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

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

...