2010-08-30 146 views
22

我似乎錯過了MsBuild 101的第1天。我發現自己問「它做了什麼,它取代了什麼,我什麼時候需要它?」因爲我可以打F5並編譯我的應用程序。MSBuild:它是什麼,我什麼時候需要它?

我失蹤的大圖是什麼?

+5

當你點擊f5編譯你的應用程序VS調用msbuild; msbuild是f5的實現細節。 – 2010-08-30 18:32:00

回答

29

MSBuild是構建平臺,使Visual Studio世界中的所有構建活動。

一個更好,更實際的例子是聲明,

1)的.csproj的文件(每個C#項目)是的MSBuild文件

2)當你按下F5鍵,你基本上(簡單化)調用msbuild.exe並傳入.csproj文件。

MSBuild賦予所有使「打F5」功能的功能。從創建「調試」或「釋放」文件夾,到刪除引用到bin \目錄,調用CSC ...以及其中的所有內容...... MSBuild「支持」所有這些。

如果您從構建中需要的所有內容都是F5爲您提供的輸出,那麼您就知道了關於MSBuild可能需要了解的全部內容。

但是,在大多數商業/實際開發方案中,會有一段時間需要定製構建過程。最常見的方法是自動化構建過程(使用TeamBuild或一些本地系統)。您可能還需要

  • 創建一個「打包」部署你的項目也正在積極 正在開發
  • 您的構建發佈到FTP和發送電子郵件到外面
  • 鏈接到另一個庫客戶通知 他們的可用性。

利用統一的,可擴展的構建平臺(即的MSBuild)的是什麼使這些這些可能的,同時仍然在構建過程的一部分......保持開發管線的「構建」部分簡單,遏制。

+0

感謝101格式的信息! – LamonteCristo 2010-09-01 20:27:23

1

當您想要從命令行構建項目時使用msbuild。每當你看到一個持續集成的產品會自動構建你的項目時,它會調用msbuild來執行實際的構建步驟。

+0

爲什麼不使用csc? – LamonteCristo 2010-08-30 18:26:31

+1

MSbuild使用csc,但它也可以做其他事情。這是微軟的NANT。 – nportelli 2010-08-30 18:28:38

+0

除了編譯它之外,還有更多的東西 - 如果你想運行測試,發送測試結果,存檔構建工件等,那麼該怎麼辦? – dsolimano 2010-08-30 18:28:49

2

當你想要做自動化這是非常有用的構建,並具備實現構建過程

The F5 Key Is Not a Build Process和其中的鏈接(例如this)是這方面的一個很好看的。

此外,您的Visual Studio項目文件是msbuild文件。如果你想在構建時做更高級的東西(例如運行javascript minifier,對自動生成的版本標識符進行更多控制,對文件進行後期處理等),則必須深入研究msbuild。

1

我認爲構建服務器應該有一個比通過Windows API更簡單的方式按F5鍵的選項。

0

我知道這是相當陳舊的,但這裏是我對MSBuild的看法。

這是一個真正類似於ANT的腳本化構建工具。他們都使用XML進行配置,所以你可以很快地找出它。例如,兩者都有「目標」的概念,思路上有很多相似之處,如果你知道ANT,交換機不應該很難。

從Visual Studio生成的MSBuild文件非常類似於從Eclipse獲得的生成ANT腳本,這些腳本構建您的項目,記住您的包含並定義您的依賴關係。您可以直接修改它們以獲得樂趣和收益。

我喜歡MSBuild,它修復了一些我覺得討厭ANT的東西。

相關問題