UWP FullTrustProcess не может загрузить DLL - PullRequest
0 голосов
/ 01 ноября 2018

Я использую проект uwp и winforms в качестве процесса полного доверия. В проекте WinF я добавил ссылку через NuGet на Dotras.dll. Dll был добавлен в ссылки, и все выглядит хорошо, запуск из winforms напрямую работает хорошо. Но при запуске UWP и вызывается fullTrustProcess (соединение в порядке, отправленные сообщения) и пытается вызвать исключение Dotras.dll.

Не удалось загрузить файл или сборку 'DotRas, версия = 1.3.5166.33435, культура = нейтральная, PublicKeyToken = b378f04384b7892a' или одна из ее зависимостей. Система не может найти указанный файл.

Я пытался добавить ссылку на проект UWP, но это не позволяет, потому что цель - ядро ​​.net, а DotRas - платформа .net. Любые советы, где поставить DLL, чтобы это работало? Спасибо!

1 Ответ

0 голосов
/ 01 ноября 2018

Убедитесь, что exe и dll развернуты в одной папке.

Вот как.

Откройте проект в Visual Studio, там есть папка Assets, обычно она используется для хранения изображений логотипа.

Поместите exe и dll в эту папку, щелкнув правой кнопкой мыши по папке и выбрав «Добавить новый элемент» в меню, и установите их Build Action как Content, поэтому во время развертывания приложения они будут скопированы в каталог установки в C:\Program Files\WindowsApps\YouPackageFamilyName\, в той же папке Assets.

В файле appxmanifest убедитесь, что путь к исполняемому файлу указан правильно.

<desktop:Extension Category="windows.fullTrustProcess" Executable="Assets\YourWinForms.exe">
</desktop:Extension>

Редактировать: Это не обязательно должна быть папка Assets, ключом является добавление dll в проект с Build Action, установленным как Content и помещением в ту же папку, что и exe.

...