Я хотел бы получить ярлык отображается и доступен для редактирования в Инструменты > Параметры > Среда > Клавиатура
Шаги, которые я пробовал:
- < li>Добавлено: [ProvideMenuResource("Menus.ctmenu", 1)]
- Создан пакет и GUID кнопок быстрого доступа в общедоступном статическом классе PackageIds
- Создал файл .vsct и установил тот же GUID, который использовался для кнопку.
- Изменено включение .vsct в .csproj на VSCTCompile
Код: Выделить всё
Menus.ctmenu
Designer
Чего мне не хватает?
VSIXPackage.cs
Код: Выделить всё
using Microsoft;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;
using System;
using System.Runtime.InteropServices;
using System.Threading;
using System.ComponentModel.Design;
using System.Windows;
using Task = System.Threading.Tasks.Task;
namespace VSIX;
[PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
[ProvideMenuResource("Menus.ctmenu", 1)]
[Guid(VSIXPackage.PackageGuidString)]
[ProvideAutoLoad(UIContextGuids.NoSolution, PackageAutoLoadFlags.BackgroundLoad)]
public sealed class VSIXPackage : AsyncPackage
{
public const string PackageGuidString = "f9a8aea3-f579-4816-9cb5-4ae3a5d68ef7";
protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress)
{
await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);
var commandService = await GetServiceAsync(typeof(IMenuCommandService)) as OleMenuCommandService;
Assumes.Present(commandService);
var menuCommandID = new CommandID(PackageIds.guidVSIXPackageCmdSet, PackageIds.MyCommandId);
var menuItem = new OleMenuCommand((s, e) => Execute(), menuCommandID);
commandService.AddCommand(menuItem);
}
public static void Execute()
{
MessageBox.Show("Hello World!");
}
public static class PackageIds
{
public const string CmdSetGuid = "d858b0de-b9fa-49e8-a7ae-e080d04a78be"; // Match the GUID in .vsct
public const int MyCommandId = 0x0100;
public static readonly Guid guidVSIXPackageCmdSet = new Guid(CmdSetGuid);
}
}
Код: Выделить всё
MyCommandId
MyShortcut
Код: Выделить всё
17.0
$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
Debug
AnyCPU
2.0
{82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
{C28A9253-3A5D-41ED-A3F9-FAA709A70BD9}
Library
Properties
VSIX
VSIX
v4.7.2
12
true
true
true
false
false
true
true
Program
$(DevEnvDir)devenv.exe
/rootsuffix Exp
true
full
false
bin\Debug\
DEBUG;TRACE
prompt
4
pdbonly
true
bin\Release\
TRACE
prompt
4
Designer
5.0.2
Menus.ctmenu
Designer
Подробнее здесь: https://stackoverflow.com/questions/791 ... -extension
Мобильная версия