[英]Precompiling ASP.NET Web application with MSBuild
我在Visual Studio 2008中有一個ac#Web應用程序項目,我希望對其進行預編譯以進行部署。 在研究了各種選擇之后,似乎所有這些都有一些問題-也許有人可以對此發表想法:
該項目受源代碼控制,並且還包含許多文件,這些文件被排除在項目之外。
Web部署項目不起作用。 如果我嘗試使用wdp進行編譯,aspnet_compiler.exe還將嘗試編譯所有排除的文件。 我不想在msbuild腳本中維護排除列表。
有沒有辦法告訴msbuild僅使用csproj文件中指定的文件/項目,將它們復制到中間文件夾,並從此副本構建不包含任何排除文件的aspnet_complier.exe?
該網站還依賴於其他3個csproj文件。
謝謝!
您可以使msbuild任務隱藏(attrib + h)或刪除不需要的文件...
<PropertyGroup>
<MyLogFile>kaantologi.txt</MyLogFile>
<MyWebSourcePath>c:\sourecontrol\myweb</MyWebSourcePath>
<!-- *.tmp and .exclude and etc: -->
<MyCleaup>
attrib $(MyWebSourcePath)\*.tmp -r -s -h -a /s >>$(MyLogFile)
del $(MyWebSourcePath)\*.tmp /q /s >>$(MyLogFile)
attrib $(MyWebSourcePath)\*.exclude +h
</MyCleaup>
</PropertyGroup>
<Target Name="MyClean">
<Exec Command="$(MyCleaup)" />
</Target>
<Target Name="MyFinal">
<Exec Command="attrib $(MyWebSourcePath)\*.exclude -h"/>
</Target>
<Target Name="MyBuild">
<CallTarget Targets="MyClean" />
<CallTarget Targets="MyCompile" /><!--...-->
<CallTarget Targets="MyFinal" />
</Target>
或者,您可以使用解決方案文件(.sln)並在其中放置csproj並進行構建。
PS。 並非完全是您的問題,但這可能會有所幫助(它適用於網站,而不適用於Web應用程序):
有什么理由不能將aspnet_compiler.exe作為部署腳本的一部分運行?
如果不使用文件,為什么文件在那里?
建議:在部署時運行編譯器或刪除文件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.