Приложение ClickOnce не может загрузить DLL, даже если она присутствует - PullRequest
0 голосов
/ 04 октября 2019

У меня есть 64-битный рабочий стол, написанный на C # с использованием Visual Studio 2015 и развернутый с ClickOnce. Он основан на SQLite, и я включил файл SQLite.Interop.dll в публикацию, используя следующие строки в стартовом проекте:

<PropertyGroup>
    <ContentSQLiteInteropFiles>true</ContentSQLiteInteropFiles>
    <CopySQLiteInteropFiles>false</CopySQLiteInteropFiles>
    <CleanSQLiteInteropFiles>false</CleanSQLiteInteropFiles>
    <CollectSQLiteInteropFiles>false</CollectSQLiteInteropFiles>
</PropertyGroup>

Это работает, и я могу убедиться, что две копии SQLite.Interop.dll действительно развернуты в подпапках с именами x86 и x64. Однако некоторые пользователи по-прежнему получают сообщение об ошибке Unable to load DLL SQLite.Interop.dll: The specified module could not be found.

Странно, что я скопировал содержимое своей папки bin для разработки и поместил ее на машину для развертывания (в другом месте), и она заработала нормально.

Существует ли какая-то проблема с "DLL-адом", из-за которой в разных путях выполняется поиск зависимостей при развертывании приложения с помощью ClickOnce?

...