Web Deployment Projects fordítása Visual Studio nélkül

Nagyon kedvemre való az ASP.NET 2.0-ban megjelent Web Site projekt típus, elsősorban az egyszerűsége miatt. Sajnos van néhány hátránya is, amiből néhány az eltelt sok év alatt sem oldódott meg, másokra azonban van már jól használható megoldás. Ez utóbbiak közé tartozik a a projekt fordítása, azaz hogy a szerverre ne a nyers forráskódot kelljen feltennünk – és ezzel az ASP.NET runtime-ra bíznunk a fordítást – , hanem csak a lefordított DLL-eket és a kiürített ASPX fájlokat. Ezt a problémát tökéletesen megoldja a Web Deployment Projects (WDP) kiegészítés. Ezzel viszont az a bökkenő, hogy csak a nagy Visual Studiot támogatja, Visual Web Developer Expressre nem tudjuk telepíteni. Ha tehát van egy VS alatt készült projektünk, aminek a fordítását, CSS és Javascript minimalizálását, sőt az egész telepítő csomag összerakását a WDP végzi, akkor nem tudunk telepítőt gyártani az Express verzión, hiszen az nem tudja betölteni a WDP projekt típust. Szerencsére van megoldás.

Az a szerencsénk, hogy csak a dizájner támogatással van probléma, parancssorból le lehet fordítani az egész solutiont, DLL függőségekkel és WDP-vel együtt. Első lépésként tehát telepítsük fel a VWD Express mellé a WDP-et és fütyüljünk rá, hogy a kettő szóba se áll egymással. A lényeg, hogy a WDP telepítőjével az MSBuild taskok felkerültek a gépre.

A WDP projekt konfigurációjától függően valószínűleg kelleni fog még az aspnet_merge.exe, amit megtalálhatunk a nagy Visual Studios gépen vagy esetleg a Windows SDK-ban. Ezt egyszerűen másoljuk be a %ProgramFiles%\MSBuild\Microsoft\WebDeployment\v10.0 mappába.

Ha ez mind megvan, már indulhat is a teljes solution fordítása parancssorból:

"%WinDir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe"
  /target:Build
  /property:Configuration=Release
  MySolution.sln 
  /p:AspNetConfiguration=Release 

Fontos, hogy négyes MSBuildre van szükségünk, még akkor is, ha egyébként a projekt a 3.5-ös Framework verziót célozza meg.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s