Programy pisane z wykorzystaniem technologi WPF dają duże możliwości w projektowaniu interfejsów graficznych. Mają one jednak swoje wady, jedną z głównych wad jest to, że czasami aplikacje takie uruchamiają się bardzo wolno.
Ogólne praktyki opisane zostały na stronach Microsoftu: Czas uruchamiania aplikacji. W tym wpisie opiszę sposób na wykorzystanie narzędzia NGEN: Ngen.exe (Generator obrazu natywnego).
NGEN – co to jest?
NGEN to narzędzie instalowane razem z .NET Framework, które wykonuje natywny dla danego komputera obraz programu, dzięki czemu środowisko uruchomieniowe systemu Windows (CLR) nie musi przy uruchomieniu kompilować programu na kod maszynowy.
W prostych słowach po użyciu narzędzia NGEN – uruchomienie programu jest czasami znacznie szybsze 🙂
Jak użyć NGEN?
NGEN jest instalowany razem z .NET Framework, więc znajdować się będzie w katalogach frameworka. Jeżeli mamy problem ze znalezieniem to można użyć wyszukiwania systemu Windows (Windows + F) i wyszukać plik: ngen.exe.
W przypadku .NET Framework 4.0, plik znajduje się w katalogu:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
Uruchamiamy wiersz poleceń (Command Line) systemu WIndows (Windows + R i wpisujemy cmd), koniecznie jako administrator!.
Po wpisaniu wpisujemy komendę przenoszącą do katalogu .Net Framework:
CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319
Jak będziemy już w katalogu to uruchamiamy program NGEN ze wskazaniem ścieżki gdzie znajduje się program:
ngen.exe install "C:\Program Files (x86)\LCSoft\ProstaPaczka\ProstaPaczka.exe"
Po zakończeniu pracy można uruchomić program, który był kompilowany – powinno być szybciej 🙂
PS. Jak wiemy że mamy użyć .NET Framework 4.0 to można od razu po uruchomieniu wiersza poleceń (jako administrator) komendy:
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe" install "C:\Program Files (x86)\LCSoft\ProstaPaczka\ProstaPaczka.exe"
”
Programista, analityk IT i specjalista ds. projektów z wieloletnim doświadczeniem. Absolwent Politechniki Białostockiej i Politechniki Warszawskiej. Magister elektrotechniki z wieloletnim doświadczeniem w branży kurierskiej. Wykształcenie uzupełnione o studia podyplomowe oraz liczne szkolenia z zakresu zarządzania projektami IT, analizy IT oraz modelowania procesów biznesowych. Prywatnie miłośniki literatury fantasy i szczęśliwy ojciec.