N
North Arrow Research
Guest
I have a 64 bit desktop written in C# using Visual Studio 2015 and deployed with ClickOnce. It relies on SQLite and I have included the SQLite.Interop.dll file in the publish using the following lines in the start-up project:
<PropertyGroup>
<ContentSQLiteInteropFiles>true</ContentSQLiteInteropFiles>
<CopySQLiteInteropFiles>false</CopySQLiteInteropFiles>
<CleanSQLiteInteropFiles>false</CleanSQLiteInteropFiles>
<CollectSQLiteInteropFiles>false</CollectSQLiteInteropFiles>
</PropertyGroup>
This appears to work for most users, and I can verify that the two copies of SQLite.Interop.dll are indeed deployed to subfolders called x86 and x64. However some users still get the Unable to load DLL SQLite.Interop.dll: The specified module could not be found error message.
What's weird is that I copied the contents of my development bin folder and put it on the the problematic deployment machine (in a different location) and it ran fine.
What would cause an app to run fine when simply run from the desktop, but fail to run when installed using ClickOnce?
Is there some "DLL Hell" issue whereby different paths are searched for dependencies when an app is deployed using ClickOnce? I suspect there is some kind of conflict with another app installing the x86 version of SQLite, but how do I overcome this and force my app to use the local x64 copy that I deploy with my app?
Continue reading...
<PropertyGroup>
<ContentSQLiteInteropFiles>true</ContentSQLiteInteropFiles>
<CopySQLiteInteropFiles>false</CopySQLiteInteropFiles>
<CleanSQLiteInteropFiles>false</CleanSQLiteInteropFiles>
<CollectSQLiteInteropFiles>false</CollectSQLiteInteropFiles>
</PropertyGroup>
This appears to work for most users, and I can verify that the two copies of SQLite.Interop.dll are indeed deployed to subfolders called x86 and x64. However some users still get the Unable to load DLL SQLite.Interop.dll: The specified module could not be found error message.
What's weird is that I copied the contents of my development bin folder and put it on the the problematic deployment machine (in a different location) and it ran fine.
What would cause an app to run fine when simply run from the desktop, but fail to run when installed using ClickOnce?
Is there some "DLL Hell" issue whereby different paths are searched for dependencies when an app is deployed using ClickOnce? I suspect there is some kind of conflict with another app installing the x86 version of SQLite, but how do I overcome this and force my app to use the local x64 copy that I deploy with my app?
Continue reading...