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:\Windows\Microsoft.NET\Framework\v2.0.50727"
  set SDKDIR="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin"
  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.


txt precompile.cmd.txt (2 kB)


Balássy György (MS RD, ASP.NET MVP, MCTS)

Balássy György (MS RD, ASP.NET MVP, MCTS) Villamosmérnök, a BME Automatizálási és Alkalmazott Informatikai Tanszékén webportálok fejlesztését oktatja. 2000 óta foglalkozik a Microsoft .NET platformjával, melynek meghonosításában jelentős szerepet vállalt előadóként, konzulensként és A .NET Framework és programozása című könyv társszerzőjeként. Az MSDN Kompetencia Központon belül a Portál Technológiák Csoport vezetője, szakterülete web alapú rendszerek fejlesztése és üzemeltetése. 2004-ben Magyarországon elsőként kapta meg a Most Valuable Professional címet, majd 2005 óta a Microsoft magyarországi regionális igazgatója. Publikációi a Technet Magazinban, az MSDN Kompetencia Központ honlapján és szakmai blogjában olvashatóak.

2009.10.14. 7:49:49 | Permalink | Hozzászólások: 0 | Tárgyszavak: ,




Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások