ASP.NET alkalmazás előfordítása parancssorból

Tudjuk, hogy egy ASP.NET alkalmazást nagyon egyszerű közzétenni egy webszerveren, elég csak felmásolnunk a forrásfájlokat, a fordításról pedig az ASP.NET futtatókörnyezet automatikusan gondoskodik. Ez ugyan működik, de mint ahogy egy desktop alkalmazást sem adunk a felhasználóknak forráskód formájában, itt is szebb az olyan megoldás, ahol a szerverre már csak a lefordított DLL-ek kerülnek fel.

Az ASP.NET runtime a fordításhoz az aspnet_compiler.exe-t használja, ami a .NET Framework része. Ez gondoskodik arról, hogy a C# és VB fájljainkat a megfelelő csc.exe vagy vbc.exe fordítók dolgozzák fel. Az aspnet_compiler eredménye futtatható, de nem túl barátságos, egy rakás fájlból áll. Alapértelmezés szerint még az ASPX és ASCX fájljainkból is kipucolja a markupot, ami telepítés és üzemeltetés szempontjából barátságos, cserébe nem fogunk tudni online beleszerkeszteni a fájlokba.

Ha össze akarjuk gyúrni az egész webalkalmazásunkat egyetlen DLL-be, akkor szükségünk lesz még az aspnet_merge.exe-re is. Ez az eszköz korábban külön volt letölthető (az ASP.NET Induló Készletben is így szerepel), ma már azonban az SDK része. Képes a compiler kimenetét egyetlen fájlba összeállítani, annak fix nevet adni, verziózni, erős névvel ellátni.

Mindezt egyetlen szkriptben meg lehet írni és később 2 kattintás futtatni. Először is kellenek az eszközök elérési útjai, a bemeneti és a kimeneti mappa:

  set FXDIR="C:WindowsMicrosoft.NETFrameworkv2.0.50727"
  set SDKDIR="C:Program FilesMicrosoft SDKsWindowsv6.0ABin"
  set SOURCEDIR=Web
  set TARGETDIR=PrecompiledWeb

Takarítsuk ki a célkönyvtárat (erre egyébként az aspnet_compiler /f kapcsolója is képes, de biztos, ami biztos):

  rd /s /q %TARGETDIR%

Jöhet a fordítás:

  %FXDIR%aspnet_compiler.exe -v / -p %SOURCEDIR% -f -fixednames %TARGETDIR%

Majd az összegyúrás:

  %SDKDIR%aspnet_merge.exe -o My.Web.dll %TARGETDIR% -a -r

A paraméterek jelentését mindenki kiderítheti, ha Visual Studio Command Promptban valamelyik eszközt a –? kapcsolóval futtatja. Akit pedig egy bolondállóbb változat érdekel, innen letöltheti a teljes szkriptet.

Aki pedig kevésbé szeret szkriptelni, annak érdemes megismerkedni a Web Deployment Project-tel vagy a nemrég megjelent Web Deployment Tool (MSDeploy) eszközzel.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s