I have an odd issue with ClickOnce and SQLCE regarding the inability to load the sqlceme35.dll.
The issue I am having does not seem to be related to other issues related to the loading of 'sqlceme35.dll' that I have researched.
Details
- SQLCE version 3.5.1.0
- Using the correct private deployment strategy (x86 directory, targeting x86 build, DbProviderFactory override in app.config, etc)
- Only ClickOnce affected; same binaries on the same machine function correctly when deployed via MSI or xcopy
- Reproducible on a clean 32-bit Windows 7 VM
- Not reproducible on all machines though
- Previous version of the ClickOnce deployment still works
- The previous version put the SQLCE native assemblies into the manifest via the Visual Studio project; creating an x86 directory and adding into that directory the native assemblies as links ("Add as Link"), thus VS/msbuild handled it.
- The current version uses a post build process to add the files to the manifest.
- The entries for the native assemblies in both manifests (previous version and current version) are identical.
- I am able to verify that the file "x86\sqlceme35.dll" exists in the SQLCE deployment
- If I navigate to the ClickOnce executable (appdata/local/apps/...) and launch the executable directly, everything works as expected.
- If I place the SQLCE native assemblies in the the same directory as the executable and re-ClickOnce deploy, they are found correctly and I have no issue (except that I have now lost the x86/amd64 detection for ClickOnce deployments)
Does this issue sound familiar to anyone? What else can I do to try and pinpoint the reason why the assemblies cannot be found in the x86 directory but are found in the main executable directory?
Thanks.