[RESOLVED] Big problem with Private File–Based Deployment (SQL Server Compact 3.5 Database)
I'm using Visual Studio 2010, finished my job and now trying to publish my application. I need to deploy a SQL Server Compact 3.5 database by using private file–based deployment. Did everything in order what found at this forum http://msdn.microsoft.com/en-us/library/aa983326.aspx .
The problem is when I copy seven DLLs to the Server Explorer - my application doesn't work (Datagridview doesn't load any data, even Listbox shows up empy). Then if I remove sqlceme35.dll from Server Explorer (just this one) everything works fine, but then I can't install application on a different computer, I get an error message:
Code:
Unable to load the native components of SQL Server Compact corresponding to the ADO.NET provider of version 8080. Install the correct version of SQL Server Compact. Refer to KB article 974247 for more details.
As I understand that's because sqlceme35.dll was not included.
Does anybody has an idea what's up with this DLL ?
Re: Big problem with Private File–Based Deployment (SQL Server Compact 3.5 Database)
The Server Explorer? HUH? The server explorer is for browsing around your sql data connections... or did you mean your Project (Solution) Explorer, which is the structure for your application?
-tg
Re: Big problem with Private File–Based Deployment (SQL Server Compact 3.5 Database)
I mean Solution Explorer ;] By the way I'm using Windows 7 64-bit, but target CPU is set to x86. Target framework - .NET Framework 4 Client Profile.
Re: Big problem with Private File–Based Deployment (SQL Server Compact 3.5 Database)
OK... that's better...
Here's what you'll want to do... DO NOT put them in your solution... Just reference them, and that should be sufficient. Where you do want to include them is in your deployment. If you create an install package, then you would include the DLLs at that point - but in the install package project, NOT your project itself. If you want to use the xCopy deployment method, requires a little more work as you'll need to manually copy the files to the bin\Release folder before zipping it up or distro-ing it.
-tg
Re: Big problem with Private File–Based Deployment (SQL Server Compact 3.5 Database)
I try to add these these DLLs at Browse window in Add Reference, but it say that files cannot be added. What do you mean by manually copying the files to the bin\Release folder - that I need just simply copy these files to folder and make it to be Included in Project ?
Re: Big problem with Private File–Based Deployment (SQL Server Compact 3.5 Database)
"I try to add these these DLLs at Browse window in Add Reference"
-- But you're not adding a reference... you just need to include the files as part of your install package.
"that I need just simply copy these files to folder and make it to be Included in Project ?"
Yes, to the copy, No to the Include in project -- there is no need to include them... now if you want to semi-automate that, create new folder in the Solution Explorer, call it SQLCE, do not include it in the project, close the project.... then from File Explorer.... copy the DLLs from where ever and put them in the SQLCE folder. Re-open your project, right click the folder, Include in Project. Then check the Properties of the files and make sure they are set to be copied to the output folder, and copy only if newer. That should move them into the bin/Release folder which you can then copy to distribute.
-tg
Re: Big problem with Private File–Based Deployment (SQL Server Compact 3.5 Database)
Thank you so much for the answer ! It didn't move dlls to the Bin/Release folder, but after publishing project I find them all deployed at Application files folder, so I guess it worked.
One more question, as i said I choosed .NET Framework 4 Client Profile as target framework, but then after publishing I find 2 extra setup files dotNetFx40_Client_x86_x64 and WindowsInstaller-KB893803-v2-x86 they are 43mb size, while my application is only 4mb. So what if I set target framework to lower version of .NET Framework? Will it affect the application ?