Home > .NET, Compact Framework, Visual Studio > Poprawny .NET Compact Framework CAB w kilku krokach

Poprawny .NET Compact Framework CAB w kilku krokach

October 20th, 2009

Na początek przyznam się, że zawsze miałem problemy z projektami instalacyjnymi. Dlatego chciałbym w kilku krokach przybliżyć wam mój sposób tworzenia poprawnego CAB-a dla Compact Framework, do którego doszedłem po wielu testach i próbach.

Projekt do którego tworzę CAB-a nazywa się Largo.

Krok pierwszy – tworzymy “Smart Device CAB Project”:

Smart_Device_CAB_Project

Ja przyjąłem standard nazewnictwa [Nazwa projektu].Cab. Ale jako tako nazwa ta nie ma większego znaczenia.

Krok drugi – zmieniamy nazwę pliku wyjściowego (prawy klik na projekcie i wybieramy Properties):

Na początek mała uwaga, kliknięcie Properties z menu kontekstowego przywołuje inny ekran niż wybór Properties z Properties Window.

Property_Pages

Domyślna nazwa zbudowana jest według zasady “Debug\[Nazwa projektu CAB].cab” dlatego w naszym przypadku będzie to “Debug\Largo.Cab.cab”. Wystarczy usunąć przyrostek .cab aby nazwa wyglądała poprawnie (“Debug\Largo.cab”).

Krok trzeci – zmiana nazwy produktu i firmy (wybieramy Properties z Properties Window):

Properties_Window

Manufacturer – zmieniamy na nazwę naszej firmy / imię nazwisko lub nick. Ta nazwa pojawi się tylko i wyłącznie podczas instalacji w momencie kiedy Windows Mobile pyta nas czy chcemy zainstalować program “[Manufacturer] [ProductName]“. Według mnie nazwa ta jest odrobinę zbędna ale np. Windows Marketplace for Mobile wymaga aby nazwa ta zgadzała się z nazwą firmy / dewelopera który jest zgłoszony do sklepu.

ProductName  – zmieniamy na nazwę naszego programu. Domyślnie jest to nazwa projektu CAB. W tym punkcie warto pamiętać, że pod taką nazwą pojawi się katalog z naszą aplikacją w “Program Files”.

Krok czwarty – usuwamy z “File System” folder o nazwie “Program Files Folder” (prawy klik na katalogu i wybieramy Delete):

Program_Files_Folder_remove

W większości przypadków ten katalog jest zbędny dlatego spokojnie można go usunąć.

Krok piąty – dodajemy “Primary Output” (prawy klik na projekcie Add -> Project Output… ):

Primary_Output

To jest zestaw podstawowych plików naszej aplikacji, który zawiera plik exe oraz załączone biblioteki.

Krok szósty – utworzenie katalogu “Programs Folder” (prawy klik na lewym panelu Add Special Folder – > Programs Folder):

Programs_Folder

Krok siódmy – utworzenie skrótu do programu (rozwijamy w lewym panelu wcześniej utworzony “Programs Folder” i w prawym panelu, prawy klik “Create New Shortcut”):

Create_New_Shortcut

Następnie pojawi się okno wyboru elementu do którego tworzymy skrót:

Select_Item_In_Project

Wybieramy “Application Folder” a następnie “Primary output from [Nazwa projektu] (Active)”:

Primary_Output_From_Largo

Nazwa która się pojawi od razu zmieniamy na “Largo” (albo jakakolwiek inna). Ta nazwa pojawi się w menu Start.

I to zasadniczo wszystko. W siedmiu krokach udało nam się utworzyć podstawowy projekt CAB. Ze swojej strony chciałbym tylko dodać kilka porad co do późniejszej pracy z takim projektem:

  • Jeżeli dodajemy do oryginalnego projektu jakieś biblioteki warto po kompilacji kliknąć na katalogu “Detected Dependencies” i wybrać “Refresh Dependencies”. Czasami Visual Studio zapomina je odświeżyć i dlatego warto zrobić to ręcznie.
  • Jeżeli używamy plików z ustawionymi atrybutami “Build Action” na “Content” pamiętajmy o tym aby je dołączyć do CAB. Wystarczy prawy klik na projekcie Add -> Project Output -> Content Files i pliki znajdą się w instalatorze.
  • Podobnie jak powyżej dodajemy pliki lokalizacyjne Add -> Project Output -> Localized resources.
  • Google Bookmarks
  • Blip
  • Co-Robie.pl
  • Flaker
  • Grono
  • MySpace
  • OSnews.pl
  • Spis.pl
  • Wahacz.pl
  • Wykop
  • Pinger
  • Facebook
  • Twitter
  • del.icio.us
  • Digg
  • Śledzik
  • Vala.pl

Jakub Florczyk .NET, Compact Framework, Visual Studio , , , ,

  1. Kacper
    February 2nd, 2010 at 09:42 | #1

    Witam,

    bardzo fajny artykuł, ale tworzenie CAB w VS2008 działa u mnie tylko dla
    WM5 SDK, natomiast dla WM6 SDK wszystkie próby tworzenia CAB skończyły się niepowodzeniem :/ nie mam pomysłu co z tym zrobić :/
    Jakieś pomysły ?
    Pozdrawiam :)

  2. Jakub Florczyk
    February 2nd, 2010 at 11:51 | #2

    @Kacper

    A jakie masz objawy?

  1. October 20th, 2009 at 19:24 | #1