[ wex-alpha @ 03.08.2011. 09:07 ] @
Na pocetku projekta sam eto odabrao SQLCE kao bazu. Razmisaljo sam izmedju SQLite, ali sam na kraju odlucio SQLCE.
Sjecam se da sam nekada na drugom projektu imao problema sa deploymentom, velikih problema. Ali na kraju je to sve proradilo.

Sad je situacija drugacija. Naime, SQLCE koristi sljedece fajlove:

sqlceca35.dll
sqlcecompact35.dll
sqlceer35EN.dll
sqlceme35.dll
sqlceoledb35.dll
sqlceqp35.dll
sqlcese35.dll

I kao slag na kraju System.Data.SqlServerCe.dll kao engine.

Problem je u cinjenici sto aplikacija zaista koristi onih sedam dll-ova LOKALNO kako i treba, ali Engine nece.
Bez obzira kako referencirao taj dll, nikada se koristi lokalno (u istom folderu kao i exe), nego ga trazi da je instaliran.

Naravno, sve sam probao sto mi google nudi, ali uvijek je ista prica. Ima ona tehnologija ClickOnce, ali ne zelim da to koristim. Na kraju, jedino sto mi je preostalo (da radi), je da instaliram SSCERuntime-ENU.msi i tek onda aplikacija radi.

Zadnji put kada sam koristio SQLCE, imao sam iste probleme, ali nikako se ne mogu sjetiti kako sam to rijesio, mozda na isti nacin ili ne... ko bi vise znao.

SQLite referenciras dll, i to je to. Nosi aplikaciju gdje zelis i radi svugdje. Ne, ovdje to nije slucaj. Uvijek ima nesto.

Ako neko ima kakvu pametnu ideju, rado bih je cuo. Probao sam vec sve standardne stvari tipa;
- Copy Always
- Direktno referenciranje (iz bin foldera)
- Aplikacija je 3.5NET

Napominjem, da ostali dll se ponasaju kako i treba. Aplikacija ih trazi u folderu, osim engina (System.Data.SqlServerCe.dll).



Jel ima neko magicno dugme koje pritisnem i ovo proradi? :)









[ dejanet @ 03.08.2011. 09:27 ] @
Probaj da bacis u assembly (koristeci gacutil, mkdir i copy..)
[ Boris B. @ 09.08.2011. 08:43 ] @
Probaj na klijentskoj mašini da registriješ DLL-ove: "regsvr32 ime.dll"... Uradi za sve DLL-ove mada verovarno ne treba za sve. Ako ne radi downloaduj DependancyWalker na klijentskoj mašini, otvori glavni DLL i potraži missing references.
[ wex-alpha @ 09.08.2011. 08:50 ] @
Citat:
Boris B.: Probaj na klijentskoj mašini da registriješ DLL-ove: "regsvr32 ime.dll"... Uradi za sve DLL-ove mada verovarno ne treba za sve. Ako ne radi downloaduj DependancyWalker na klijentskoj mašini, otvori glavni DLL i potraži missing references.


Zar nije problem do mog projekta?

Svi DLL-ovi se ponasaju ok, osim onog jednog. Aplikacija ih trazi tamo gdje sam joj naredio da ih trazi, osim onog jednog. Prosli projekat (ne sjecam se kako) je radio OK.

Kako ce mi pomoci to sto mi savjetujes?
[ Boris B. @ 09.08.2011. 18:51 ] @
Pa kakvu tacno poruko o gresci dobijes, za koji fajl se zali?

Regsvr32 registruje na lokalnom sistemu COM objekte iz module fajla, bez toga se ne moze ucitati COM objekat preko IID-a cak iako imas DLL u putanji. Ako SQLCE .Net interfejs koristi interno COM onda samo kopiranje DLL-a nece raditi, zato sam mislio da probas jos to pored fizickog kopiranja DLL-ova.
[ wex-alpha @ 09.08.2011. 19:54 ] @
Citat:
Boris B.: Pa kakvu tacno poruko o gresci dobijes, za koji fajl se zali?

Regsvr32 registruje na lokalnom sistemu COM objekte iz module fajla, bez toga se ne moze ucitati COM objekat preko IID-a cak iako imas DLL u putanji. Ako SQLCE .Net interfejs koristi interno COM onda samo kopiranje DLL-a nece raditi, zato sam mislio da probas jos to pored fizickog kopiranja DLL-ova.


Zali se samo za System.Data.SqlServerCe.dll. Bio on u rootu ili ne. A najzanimljivije je cinjenica da radi kako treba za ostale fajlove. Tih sedam fajlova trazi u rootu, bas kako i treba.