Через Reflection из net5.0 вызвать WPF net5.0-windows
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 28.01.22 16:28
Оценка:
Суть такая через рефлекшин вызвать сборку net5.0-windows если OperatingSystem.IsWindows()
 var assembly = System.Reflection.Assembly.LoadFrom(fileName);
                var type = assembly.GetType("МойТип");


Винформсы работают, а вот Wpf выдает ошибку. Причем копировал саму dll в разные каталог и
System.BadImageFormatException: "Could not load file or assembly 'ReachFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (0x80131058)"

Если не копировать ReachFramework то
Could not load file or assembly 'ReachFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. Не удается найти указанный файл.
Понятно, что можно сделать отдельный сервис, но может можно решить как то через Reflection

попробую OK, Solved the problem. Was using the DLL from .net5.0\ref. Changed to using the DLL from .net5.0 folder. Thanks for the help.

А вот рефовские сборки через рефлекшн не подгружаются
System.BadImageFormatException: "Could not load file or assembly 'PrintingServiceWin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (0x80131058)"

Решение скопировать необходимые файлы из папки c:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\5.0.5\

Да еще проблема с загрузкой wpfgfx_cor3

попробую вариант загрузки
https://nietras.com/2022/01/03/bendingdotnet-move-native-libraries/
работает
и солнце б утром не вставало, когда бы не было меня
Отредактировано 29.01.2022 10:17 Serginio1 . Предыдущая версия . Еще …
Отредактировано 28.01.2022 17:50 Serginio1 . Предыдущая версия .
Отредактировано 28.01.2022 17:23 Serginio1 . Предыдущая версия .
Отредактировано 28.01.2022 17:19 Serginio1 . Предыдущая версия .
Отредактировано 28.01.2022 17:13 Serginio1 . Предыдущая версия .
Отредактировано 28.01.2022 17:02 Serginio1 . Предыдущая версия .
Re: Через Reflection из net5.0 вызвать WPF net5.0-windows
От: Shmj Ниоткуда  
Дата: 29.01.22 04:40
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>А вот рефовские сборки через рефлекшн не подгружаются

S>System.BadImageFormatException: "Could not load file or assembly 'PrintingServiceWin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (0x80131058)"

Емнип, недавно чел. спрашивал что-то подобное и проблема была в 32 и 64 битных версиях либ.
Re[2]: Через Reflection из net5.0 вызвать WPF net5.0-windows
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 29.01.22 08:11
Оценка: 9 (1)
Здравствуйте, Shmj, Вы писали:

S>Здравствуйте, Serginio1, Вы писали:


S>>А вот рефовские сборки через рефлекшн не подгружаются

S>>System.BadImageFormatException: "Could not load file or assembly 'PrintingServiceWin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (0x80131058)"

S>Емнип, недавно чел. спрашивал что-то подобное и проблема была в 32 и 64 битных версиях либ.

Не там проблема в ref сборках. Там рефлекшн только для просмотра.
Нужно брать не рефофские сборки из директории c:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\5.0.5\
А они по умолчанию лежат в C:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\5.0.0\ref\net5.0
Да еще проблема с загрузкой wpfgfx_cor3

попробую вариант загрузки
https://nietras.com/2022/01/03/bendingdotnet-move-native-libraries/
работает
и солнце б утром не вставало, когда бы не было меня
Отредактировано 29.01.2022 10:17 Serginio1 . Предыдущая версия . Еще …
Отредактировано 29.01.2022 9:55 Serginio1 . Предыдущая версия .
Отредактировано 29.01.2022 8:12 Serginio1 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.