Sharpshell с .NET Core, молча игнорирует меню при загрузке изображенияC#

Место общения программистов C#
Ответить
Anonymous
 Sharpshell с .NET Core, молча игнорирует меню при загрузке изображения

Сообщение Anonymous »

Я создал проект Visual Studio, ориентированный на net8.0-windows. Я использую SharpShell 2.7.2
У меня есть следующий код для создания контекстного меню:

Код: Выделить всё

protected override bool CanShowMenu() {
log("CanShowMenu");

/* redacted */

log("YES");
return true;
}

protected override ContextMenuStrip CreateMenu() {
var menu = new ContextMenuStrip();

try {
log("getting menu");
var mainItem = new ToolStripMenuItem {
Text = "Assembler A->Z"
//,Image =  Properties.Resources.AssembleAZ

};

mainItem.Click += (sender, e) => {
log(SelectedItemPaths);
};

menu.Items.Add(mainItem);
} catch (Exception? ex) {
log(ex);
}

return menu;
}
Все работает нормально, пока я не раскомментирую

Код: Выделить всё

,Image =  Properties.Resources.AssembleAZ
Изображение (

Код: Выделить всё

Properties.Resources.AssembleAZ
) — это копия и вставка файла из примеров SharpShell, загруженного вместе с файлом .resx. Я проверил свойства файла .resx и файла изображения. Оба они соответствуют образцу SharpShell.
Тогда я даже не вижу «меню получения» в журналах, и журнал (ex) не регистрирует никаких ошибок.
Но я получаю логи из CanShowMenu().
И, проверив реестр *\shellex\ContextMenuHandlers\MyKey, кажется, что сервер правильный установлено.
Любая помощь приветствуется.
Я также пытаюсь напрямую загрузить изображение из существующего файла:

Код: Выделить всё

Image.FromFile(@"c:\temp\AssembleAZ.png");
Я включаю отладку SharpShell и получаю следующую ошибку:

System.MissingMethodException: метод не найден: 'Void System .Windows.Forms.ToolStripItem.set_Image(System.Drawing.Image)'


Подробнее здесь: https://stackoverflow.com/questions/793 ... g-an-image
Ответить

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

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

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

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

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