好吧,在这里我需要一些指导,因为,我不知道我是否在选择简单/正确的方法来实现自己的目标。
让我解释一下我正在尝试的内容:
我正在尝试使用自己的项目来避免由创建的冗余数据 git子模块(使用依赖项时(我不是说NuGet软件包, 我的意思是开源依赖))通过存储此 项目/依赖项放在一个公共文件夹中,然后链接到任何 我需要的项目(有人建议我这是一个糟糕的设计, 因为想要为我的开源做出贡献的新开发人员 项目将需要我的项目(我正在谈论的项目)以确保 他们能够对其进行修改并做出贡献。)
出于这个原因,我意识到,避免这种情况的唯一方法是创建一个VSIX项目(以避免跨平台问题),以确保已纠正分叉项目的依赖关系。
但是我想保持简单,因为我从未做过VSIX扩展。因此,研究发现this topic(这与如何使用Solution Explorer context menu
菜单和Tools > External Tools
来修改Tools > Customize...
正是我真正需要的)。
问题来了。这需要手动完成,我想避免这种情况。
自动化这有点头疼,因为我不知道从哪里开始。
首先,我创建了自己的“外部工具”绑定(以Sublime Text为例),然后使用“ Windows上的Ubuntu子系统”,感谢this answer,我用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>
我被困在这一部分,因为在这两个XML部分之间找不到任何类似的GUID。
因此,我不知道从哪里开始,因为我找不到add
或modify
标签的任何文档,也没有Cmd
,CmdPri
,{ {1}}或GroupPri
属性。
为什么Menu
节中的Package
标签GUID值是空的?
我正在尝试对此进行反向工程以尝试对其进行解析,然后对其进行修改。但是我不明白发生了一半的事情。
此外,我不知道是否有可用的解析器来完成此任务。
任何有关此方面的指导都将被理解。