我有一个使用Visual Studio 2015用C#编写的64位桌面,并与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 Hell”问题,当使用ClickOnce部署应用程序时,该问题会在不同的路径中搜索依赖关系?