Standardní instalace .NET Compact Frameworku 2.0 (dále jen CF2), který je nezbytný pro běh některých aplikací, instaluje všechny soubory do hlavní paměti zařízení a nikoliv na paměťovou kartu, a to i tehdy, když takovou instalaci zvolíte na začátku instalace. To samozřejmě užere solidní část volné paměti cca. 5MB, kterou bychom jinak mohli využít jinak, že. Na několika zahraničních webech jsem našel i informace o tom, že explicitní přemístění na kartu není možné, že nefunguje nebo že se opět soubory časem „přestěhují“ zpět do hlavní paměti. Já sám jej mám již drahnou dobu na kartě a žádné popisované problémy zatím nenastaly. Přináším vám tedy návod, jak ušetřit pár MB a přesunout vše na paměťovou kartu. Jen mějte na paměti, že vše provádíte na vlastní riziko, že zasahujete do systemových oblastí vašeho zařízení. Proto vyloženě doporučuju minimálně zálohovat registry a nic neuspěchat. Takže jdeme na to !
1. Příprava
• CF2 musí být nainstalován před provedením těchto úprav (nejlépe standardně, do paměti zařízení)
• měli byste mít nějakou aplikaci, jež CF2 používá, abyste to po úpravách otestovali (nejlépe před a po úpravě)
• bezpodmínečně ukončete všechny aplikace, které CF2 využívají
• použijte nějaký editor registru např. desktopový „Mobile Registry Editor“
2. Adresáře
• měli byste mít prázdný adresář „.net cf 2.0“ v adresáři „Program Files“ ve vašem zařízení
• vytvořte stejný adresář tj. „.net cf 2.0“ na kartě čili:
„\Storage Card\Program Files“ -> „.net cf 2.0“
Pozn. adresář zůstává stále prázdný – takže to možná není nutné, ale pro jistotu to udělejte
• pokud nemáte, vytvořte adresář „Windows“ na kartě, čili: „\Storage Card\Windows“
3. Přesun souborů na kartu
Následující soubory mohou být přesunuty z adresáře „\Windows“ vašeho zařízení na kartu
tj. do: „\Storage Card\Windows“
GAC_CustomMarshalers_v2_0_0_0_cneutral_1.dll
GAC_Microsoft.VisualBasic_v8_0_0_0_cneutral_1.dll
GAC_Microsoft.WindowsCE.Forms_v2_0_0_0_cneutral_1.dll
GAC_Microsoft.WindowsMobile.DirectX_v2_0_0_0_cneutral_1.dll
GAC_mscorlib_v2_0_0_0_cneutral_1.dll
GAC_System.Data.SqlServerCe_v3_0_3600_0_cneutral_1.dll
GAC_System.Data_v2_0_0_0_cneutral_1.dll
GAC_System.Drawing_v2_0_0_0_cneutral_1.dll
GAC_System.Messaging_v2_0_0_0_cneutral_1.dll
GAC_System.Net.IrDA_v2_0_0_0_cneutral_1.dll
GAC_System.Web.Services_v2_0_0_0_cneutral_1.dll
GAC_System.Windows.Forms.DataGrid_v2_0_0_0_cneutral_1.dll
GAC_System.Windows.Forms_v2_0_0_0_cneutral_1.dll
GAC_System.Xml_v2_0_0_0_cneutral_1.dll
GAC_System_v2_0_0_0_cneutral_1.dll
MSCOREE2_0.dll
netcfagl2_0.dll
netcfd3dm2_0.dll
4. Úprava Global-assemblies-cache (GAC)
• V adresáři „\Windows“ se nachází soubor „Microsoft .NET CF 2.0.GAC“ – nepřesunujte !
• Otevřete a upravte tento soubor v nějakém textovém editoru (např. UltraEdit)
• Zazálohujte si originální soubor .GAC před modifikací !!!
• Buďte opatrní ! První 3 bajty jsou nějaké „zmatené“ znaky a ty musí být zachovány, ty nesmíte změnit !
• upravte originální soubor, řádek po řádku, a nahraďte na každém řádku následujícím způsobem:
„\Program Files\.NET CF 2.0\system.dll“ je nahrazen za
„\Storage Card\Program Files\.NET CF 2.0\system.dll“ a tak dále …
Zde je obsah upraveného souboru „\Windows\Microsoft .NET CF 2.0.GAC“ jako příklad:
\Storage Card\Program Files\.NET CF 2.0\mscorlib.dll
\Storage Card\Program Files\.NET CF 2.0\system.dll
\Storage Card\Program Files\.NET CF 2.0\system.drawing.dll
\Storage Card\Program Files\.NET CF 2.0\system.messaging.dll
\Storage Card\Program Files\.NET CF 2.0\system.web.services.dll
\Storage Card\Program Files\.NET CF 2.0\system.windows.forms.dll
\Storage Card\Program Files\.NET CF 2.0\system.windows.forms.datagrid.dll
\Storage Card\Program Files\.NET CF 2.0\system.xml.dll
\Storage Card\Program Files\.NET CF 2.0\system.net.irda.dll
\Storage Card\Program Files\.NET CF 2.0\system.data.dll
\Storage Card\Program Files\.NET CF 2.0\microsoft.visualbasic.dll
\Storage Card\Program Files\.NET CF 2.0\microsoft.windowsce.forms.dll
\Storage Card\Program Files\.NET CF 2.0\Microsoft.WindowsMobile.DirectX.dll
\Storage Card\Program Files\.NET CF 2.0\CustomMarshalers.dll
• uložte změny a zavřete soubor
5. Změny v systémových registrech (buďte opatrní!)
• Musíte ručně upravit některé hodnoty klíčů (asi 14) v
[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETCompactFramework\
Installer\Assemblies\Global]
následujícím způsobem
(Všimněte si: „\Storage Card“ je vždy předřazeno každé hodnotě):
Value:
System.Windows.Forms.DataGrid, Version=2.0.0.0, Culture=neutral, PublicKeyToken=969DB8053D3322AC
Originální value Data (MultiString):
\Windows\GAC_System.Windows.Forms.DataGrid_v2_0_0_0_cneutral_1.dll
\Program Files\.NET CF 2.0\system.windows.forms.datagrid.dll
Upravená value Data:
\Storage Card\Windows\GAC_System.Windows.Forms.DataGrid_v2_0_0_0_cneutral_1.dll
\Storage Card\Program Files\.NET CF 2.0\system.windows.forms.datagrid.dll
• upravte jen hodnoty (values), které obsahují soubor uvedený v odstavci 3.(viz Přesun souborů na kartu) ve svém prvním řádku a soubor z GAC (viz odstavec 4.) v druhém řádku multi-string hodnoty.
• můžete použít přiložený soubor „registry.reg“ jako příklad nebo jej i přímo naimportovat
• Upozornění: soubory MSCOREE2_0.dll, netcfagl2_0.dll a netcfd3dm2_0.dll se v registrech nenacházejí takže žádná úprava pro ně není potřebná
• Nakonec přidejte cestu na adresář „\storage card\windows“ do klíče „HKEY_LOCAL_MACHINE\Loader\SystemPath“
• Zde již mohou být přítomné i jiné položky(adresáře) takže jen přidejte novou. „SystemPath“ je Multi-String hodnota takže přidejte novou cestu jako nový řádek (Enter vytvoří nový řádek) např. bude obsahovat:
\windows\oem\
\storage card\windows\
6. Hotovo
Jen pro jistotu restartujte zařízení a zkuste spustit nějakou aplikaci, jež používá CF2
7. Možné potíže
Jestliže aplikace (využívající CF2) generuje vyjímku (exception) během spouštění nebo nereaguje vůbec (tj. nic se neděje když zvolíte EXE soubor):
• ověřte všechny údaje, které jste měnili v registrech, je vše správně a všechny položky jsou upraveny (a správně)?
• ověřte GAC soubor
• ověřte zde všechny soubory uvedené v GAC a/nebo registrech jsou přesunuty do nového umístění (na kartu)
• řekněte „doprdele“ a začněte úplně od začátku, mělo by to pomoci -:)
• a věřte, určitě to funguje, je to ověřené více lidma
Hodně zdaru a napište jak jste dopadli.
Omlouvám se všem za to že jsem lolo, ale jak to vůbec dostanu do mobilu? Mám Motorolu MPx220.
Děkuji
Vždyť o kousek výš je odkaz na stránky Microsoftu kde stáhneš NETCFSetupv2.msi. Pak připojíš mobil k PC, přes ActiveSync a spustíš ten soubor. Něco se dává i na disk ale pak by mělo dojít i k instalaci na mobil. Už si to moc nepamatuju …
To je sice hezký, ale píše mi to, že nemám podporované zařízení a že to nelze nainstalovat
Jen doufám že se bavíme o Motorole MPx220 s patchem OS na WM 2005. Pod WM2003 to zřejmě nainstalovat nepůjde.
Jinak u výše uvedeného odkazu (je to verze Sp1) byl problémm s instalací popisovaný zde: http://blog.renestein.net/PermaLink,guid,47ececd7-5031-4c77-a268-1df8d49f9c7c.aspx
Takže zkus stáhnout a nainstalovat nejnovější verzi tj. SP2, problém by v této verzi měl být vyřešen: http://www.microsoft.com/downloads/details.aspx?FamilyID=aea55f2f-07b5-4a8c-8a44-b4e1b196d5c0&DisplayLang=en
Tak to bude ten problém, nemám tam ten patch, vždyť jsem psal, že jsem lolo, no a ještě tedy, kde vezmu ten patch, děkuji. 🙂
To bohužel nevím. Zkus pohledat, něco jako „WM5 pro Mpx220“. Zkus taky http://www.mobilnaut.cz, myslím, že jsem to tam zahlédl. Obávám se ale, že pro Mpx220 to bude problém, s Mpx200 to určitě jde.
Nedaří se mi naimportovat ten REG soubor. Hlásí to, že se nejedná o soubor registry.
Ok, opravil jsem to, soubor byl fakt nějaký divný. Zkus to ještě jednou stáhnout a pak vyzkoušet a dej vědět jaks dopadl.
Problém je asi v tom, že moje zařízení karta se jmenuje „Karta Mini SD“. V čem ten blabla kód přepsat?
Chceš říct, že ‚adresář‘, který vidíš třeba na svém PC v exploreru se jmenuje „Karta Mini SD“?
Ručně ten reg soubor asi jednoduše neupravíš, nejjednodušší bude tu úpravu, tak jak je tu popsána, udělat v registru ‚ručně‘ tj. postupně upravit všech cca. 14 položek, jednu po druhé.
Ano, přesně tohle. Ve Variu ti bylo normálně Storage Card. V Asusu P525 je to takhle a přejmenovat nejde. Zkusím to tedy ručně.
Tak jsem zkusil zde v diskusi odkaz na verzi .NET 2.0 SP2 a instalaci na kartu a krome asi tech .dll je vse na karte, nejake zabrani mista v pameti jsem nezaznamenal (spis uvolneni, ale dival jsem se na zaplneni pameti tesne pred odkliknutim instalace v PDA).
Takze bych asi uz doporucil jen standardni instalaci SP2 na kartu a je to bez problemu 🙂
Net Framework 2 jsem dal instalovat na Qteku 8500 na kartu a také se na ní z většiny nainstaloval a zůstal. V telefonu zabral 1MB.
To jsi zřejmě instaloval SP1 verzi. Ale i tak je tu určitě rezerva, 1MB v paměti telefonu je pořád celkem dost a možná by se s tím dalo něco dělat. Ale pořád lepší než 5 MB 🙂
Prosim o radu.PO naistalovani aplikaii ifonz si tato pyta novsiu verziu NET Compact Frameworku.Stiahol som si CF2 SP2 no kedze tam mam uz starsiu verziu CF tak sa instalacia prerusi.Ako starsiiu verziu oddinstalujem?