Почему кнопки подменю внутри расширения VSIX всегда отключены и как их правильно включить на VS2026?C#

Место общения программистов C#
Ответить
Anonymous
 Почему кнопки подменю внутри расширения VSIX всегда отключены и как их правильно включить на VS2026?

Сообщение Anonymous »

Я создаю второй пилотный проект, например расширение VSIX, для VS2026 для использования с моим автономным сервером LLM.
Я создал кнопку раскрывающегося меню и кнопки подменю (которые, кажется, всегда выделены серым цветом или отключены).
Я пытался получить помощь с помощью Chatgpt/Google Gemini, но мне не удалось решить проблему отключенного статуса кнопок подменю.
Меню правильно отображается в инструментах VS2026 и при щелчке правой кнопкой мыши (выбор кода). Я новичок в проектах VSIX и WPF.
Как правильно включить эти кнопки? Почему они отключены?
Любая помощь приветствуется.
Разметка Frontend WPF:


























AI Assistant























Open Chat







Generate Context









Вот как я все регистрирую в серверной части:
public static async Task InitializeAsync(AsyncPackage package)
{
// Switch to UI Thread immediately
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(package.DisposalToken);

var commandService = await package.GetServiceAsync(typeof(IMenuCommandService)) as OleMenuCommandService;

// Use DTE2 for better VS 2026 compatibility
var dte = await package.GetServiceAsync(typeof(SDTE)) as EnvDTE80.DTE2;

if (commandService != null && dte != null)
{
// Don't just discard the instance, ensure it's fully constructed
var unused = new CommandHandlers(package, commandService, (EnvDTE.DTE) dte);
}
}

private void RegisterCommands(OleMenuCommandService commandService)
{
// 1. Show Tool Window Command
var showWindowCommand = new OleMenuCommand(
ShowAiToolWindowExecute, new CommandID(CommandSet, ShowToolWindowCommandId));

showWindowCommand.Supported = true;
showWindowCommand.Enabled = true;
showWindowCommand.Visible = true;
showWindowCommand.BeforeQueryStatus += OnBeforeQueryStatus;
commandService.AddCommand(showWindowCommand);
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... d-how-to-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»