Dot-Net

使用 MSBuild,我如何從命令行建構 MVC4 解決方案(在過程中應用 Web.config 轉換)並輸出到文件夾?

  • July 29, 2015

我認為問題標題幾乎說明了一切,但為了清楚起見,我試圖:

  1. 從命令行 (MSBuild) 建構 VS2010 ASP.NET MVC4 解決方案,指定解決方案配置(例如發布)
  2. 在此過程中為該配置應用任何 Web.config 轉換
  3. 將結果輸出到本地電腦上的文件夾中(沒有 IIS、代理、zip 文件、FTP、包等,只是一個包含執行該網站所需的所有文件的文件夾)

近一周以來,我一直在嘗試通過 Microsoft 文件(非常無用)、關於 SO 和一般Google搜尋的其他答案來解決這個問題。我不知道我是否只是沒有得到它(這完全有可能),或者 MSBuild/MSDeploy 是否真的是它目前看起來的神秘混亂。

有沒有一種相當簡單的方法來實現這一目標?請幫忙!

如果您執行的是 VS2010:確保安裝了 Azure 1.7+ SDK(即使您沒有發佈到 Azure,它也會將 VS2012 發布功能添加到 VS2010)

VS2012+ 內置了這些功能

msbuild ProjectFile.csproj /p:Configuration=Release ^
                          /p:Platform=AnyCPU ^
                          /t:WebPublish ^
                          /p:WebPublishMethod=FileSystem ^
                          /p:DeleteExistingFiles=True ^
                          /p:publishUrl=c:\output

或者,如果您正在建構解決方案文件:

msbuild Solution.sln /p:Configuration=Release ^ 
                    /p:DeployOnBuild=True ^
                    /p:DeployDefaultTarget=WebPublish ^
                    /p:WebPublishMethod=FileSystem ^
                    /p:DeleteExistingFiles=True ^
                    /p:publishUrl=c:\output

無論哪種方式,您還可以設置/p:PrecompileBeforePublish=true並且輸出將是站點的預編譯版本。

安裝 Azure SDK 後,您通常會創建一個發布配置文件並簡單地使用/p:PublishProfile=DeployToFolder,但我已經為您提供了手動命令行,以防您對新的發佈內容不感興趣。

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