Asp.net

如何使用 MSBuild 編譯 ASP.Net MVC 項目

  • June 14, 2011

如何使用 MSBuild 編譯 ASP.Net MVC 項目?我們使用持續集成伺服器來編譯和部署我們的應用程序。為了簡單起見,我在 VS2008 中創建了一個 MVC 1.0 項目。我立即創建了一個 MSBuild 腳本文件來編譯它。我沒有更改項目中的任何程式碼。MSBuild 腳本包含以下目標。

   <AspNetCompiler
      VirtualPath="/"
       PhysicalPath="C:\Development\mvc1\"
        TargetPath="c:\publish\xxx"
        Force="true"
        Debug="false" 
 Updateable="true"

MVC 項目 sln 文件包含在 c:\development\mvc1\ 目錄中。我正在執行 XP/Pro。

我收到錯誤 ASPCONFIG:在應用程序級別之外使用註冊為 allowDefintion=‘MachineToApplication’ 的部分是錯誤的。我從 Web 配置文件中刪除了身份驗證模式、成員資格提供程序等,直到我最終看到另一個錯誤資訊。我現在收到一條錯誤消息,指出文件“/views/shared/site.master”不存在。

到底是怎麼回事?在此先感謝您的幫助!

我是否使用了錯誤的 MSBuild 命令?

如果您編譯您的 sln 文件 (msbuild mysolution.sln) 或

<MSBuild Projects="msbuild mysolution.sln" Targets="Rebuild" ContinueOnError="false"
StopOnFirstFailure="false" /><!-- -d -errorstack -->

並且 sln 文件有 ASP.NET MVC-project .csproj-file 然後 .csproj-file 有你需要的一切。用記事本打開 .csproj 並查找:

1)這應該是真的:

<MvcBuildViews>false</MvcBuildViews>
  1. 目標名稱=“AfterBuildCompiler”:
 <Target Name="AfterBuildCompiler" Condition="'$(MvcBuildViews)'=='true'">
   <AspNetCompiler VirtualPath="SomeVirtualDir" PhysicalPath="C:\Development\mvc1\" TargetPath="c:\publish\xxx\" />
 </Target>

我沒有做任何其他事情,它奏效了。我實際上進行了配置,以便僅發布建構部署應用程序(通過將 MvcBuildViews-property 移動到 PropertyGroups 下。然後我可以在開發(調試)和部署(發布)中使用相同的 .csproj。

引用自:https://stackoverflow.com/questions/2195686