Я создаю второй пилотный проект, например расширение 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