Od jakiegoś czasu mam zainstalowany Microsoft Visual Web Developer 2005 Express Edition. Oprogramowanie to jest całkowicie darmowe i do pisania aplikacji w zaciszu domowym w zupełności wystarcza. Z Express'em pracuje się prawie jak z pakietem w wersji Standard. Ogólnie jest wszystko pięknie, ale co jeśli chcemy napisany projekt skompilować i oddać go klientowi z gotowym kodem wynikowym? Tu pojawia się mały problem, gdyż to całkiem niezłe środowisko nie pozwala nam na to. Na szczęście można poradzić sobie z tym problemem troszeczkę na okrągło. Jak to zrobić? Odpowiedź znalazłem na tym blogu.
Scott Allen's opisuje narzędzie aspnet_compiler, które służy do tworzenia prekompilacji kodu i mieści się w katalogu %WINDIR%\Microsoft.NET\Framework\v2.x.xxxx. Dzięki temu możemy przygotować naszą aplikację do deploymentu i oddać klientowi tylko skompilowany i działający kod bez plików źródłowych. Wykonując następującą linijkę:
aspnet_compiler -p "C:\MyDevelopment\mySiteProject" -v / C:\myTarget
otrzymamy gotową/skompilowaną aplikację w katalogu C:\myTarget. Przy tak ustawionych opcjach pliki ASPX, ASCX i ASHX będą tylko plikami potrzebnymi do działania aplikacji, ale nie będą zawierać naszego kodu, a tylko poniższy tekst:
This is a marker file generated by the precompilation tool, and should not be deleted!
uniemożliwia to zmianę kodu wewnątrz tych plików.
Dodając parametr -u kompilator pozostawi kod wewnątrz wymienionych typów plików co daje możliwość dokonywania zmian w plikach ASPX, ASCX i ASHX po skompilowaniu. Przykład:
aspnet_compiler -u -p "C:\MyDevelopment\mySiteProject" -v / C:\myTarget
Co najważniejsze katalog docelowy będzie zawierał kompletną aplikację gotową do wysłania/opublikowania.