Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Auto-Moto
Mobilní telefony
Notebooky  |  Tablety
Příslušenství
Wearables  |  Ostatní
Svět hardware  |  Digimanie  |   TV Freak

kompilace pomoci ILASM pro CF2

Buthrakaur (61)|21.8.2006 16:03
Mam nejaky IL kod, ktery bych potreboval zkompilovat pro CF2 (je to puvodne CF1 kod ziskany pomoci ILDASM). Potreboval bych ho ted zkompilovat do CF2-class library - pomoci ILASM se mi to sice podarilo, ale vysledkem je full-framework2 class library, ktera nelze pouzit z CF2 aplikace. Do referenci SmartDevice projektu tuhle assembly sice pridam, ale VS2005 se tvari, ze v assembly zadne tridy nejsou (object browser nic neukazuje a pokud pouziju nejakou tridu primo v kodu, tak mi krici kompilator). Pokud ale pridam assembly do referenci ve WinForms aplikaci, tak je vsechno ok a tridy muzu bez problemu pouzivat.

Jak tedy donutit ILASM, aby kompiloval kod pro CF a ne full-framework?
RStein (2012)|28.8.2006 11:51
Myslim si, ze k tomu ILASM neznasilnite....
Nebylo by pro Vas sxchudne pouzit napriklad Reflector - ziskat kod a znovu ho zkompilovat pod V.2?
http://www.aisto.com/roeder/dotnet/
Buthrakaur (61)|28.8.2006 12:02
To je taky moznost, ale bude to pro mne radove mnohem slozitejsi a nejsem si jisty, jestli se mi to vubec podari...

Abych byl konkretni - tenhle problem resim jenom kvuli tomu, ze se nekolik trid v CF2 presunulo oproti CF1 do jine assembly a pokud z CF2 aplikace pouziju tuhle CF1 assembly, tak mi tridy, ktere jsou podedene z techto dotcenych trid nejdou pretypovat na sve predky - kompilator zahlasi chybu, ze nemam referencovanou tu puvodni CF1 assembly, ktera v CF2 uz neexistuje. Jde mi hlavne o tridu DbDataAdapter - trida i v CF2 samozrejme existuje ve stejnem namespace, ale problem je, ze se presunula ze System.Data.Common.dll do System.Data.dll a knihovna System.Data.Common.dll uz v CF2 neexistuje.

V IL je tohle jednoduchy problem - opravim reference na CF2 (staci opravit cislo verze a odstranit referenci na System.Data.Common.dll) a opravim vsechny vyskyty "[System.Data.Common]" na "[System.Data]". Bohuzel to ale, jak sam potvrzujete, zrejme nelze zkompilovat pro CF (pro FF bez problemu). Pro CF lze tedy zrejme bohuzel kompilovat pouze z "vyssich" jazyku a ne primo IL :((
beecher (9270)|28.8.2006 12:41
Ne ze bych chtel byt kverulant, ale nebude jednodussi prejit na CF2?
Buthrakaur (61)|28.8.2006 12:48
no, o to se tu prece prave snazim :)) bohuzel ale jedna zivotne dulezita knihovna neexistuje v CF2 verzi, zdrojaky od ni nemam a jelikoz je to data provider a obsahuje podedene tridy od System.Data.Common, tak nejde bez problemu pouzit CF1 knihovna z CF2 aplikace....
beecher (9270)|28.8.2006 18:15
Tak zmenit DB, ktera providery do CF 2.0 ma?
Buthrakaur (61)|29.8.2006 08:04
to neni reseni... Oracle Lite neni jenom DB - je to docela komplexni synchronizacni system, licence taky nebyly uplne zadarmo, server-side DB musi byt oracle apod. produkt je to hodne dobry, akorat ten Oracle na zakazniky trochu s*** :///
beecher (9270)|29.8.2006 08:41
Tak MS SQL 2005 Mobile a vlastni synchro... ;)
Buthrakaur (61)|29.8.2006 08:51
dekuju, nechci - staci to takhle? :D

cely system uz nejakou dobu bezi a krome toho CF2 providera neni zadny vyrazny problem..