SQLite deployment for .net application
I have used SQLite for开发者_StackOverflow中文版 my .net framework 4.0 WPF application, It works perfectly fine with development environment. I just copied system.data.sqlite.dll to my application installed location but it is not working as expected.
Can anybody tell me how to deploy the SQLite for the fresh machine.?
IS it not enough to distribute only the dll's? I am using installshiled 2011 to build the setup installer. Please share if anybody has merge module for SQLite.
Early help will be greatly appreciated.
Thanks in advance
Vinay MS
You should be able to operate with just the interop and the data DLLs. Our project uses these:
The LINQ one isn't necessary unless you use LINQ.
I've renamed every copy of SQLite3.dll or SQLite3.exe on my computer (there were dozens) and the application continues to run. I was checking to make sure my answer is correct, and this is something we're going to have to do, in order to make sure our installs work, too.
What Tangurena says is right (which in fact helped me to get it working) but you also need to include the config setting mentioned in the readme of SQLite:
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite" />
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.80.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
</DbProviderFactories>
</system.data>
Actually, you should be able to just copy System.Data.SQLite.dll from your project. I typically set the CopyLocal property to true when I add that reference to my projects, and then make sure that when I make an installer I have that DLL in the same location as the final .exe file. I wrote a blog post about this last year, maybe something in my post will set you on the right track: My Blog Post on SQLite and C#
As some mentioned earlier you need to include to your app configuration:
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite" />
<add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.80.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
</DbProviderFactories>
You have to also add DLL files to references:
- SQLite.Designer
- System.Data.SQLite
- System.Data.SQLite.Linq
And set property 'Copy Local' value equal true for each of them. Please visit my blog for more info
精彩评论