2013-02-21 41 views
9

我想清除一個概念。 在C#中, 當我們建立(或重新建立)的解決方案, 我們有時會 Build: 1 succeeded1成功和1成功或最新的C#之間的區別

有時,

Build: 1 succeeded or up-to-date 

好吧,我知道的東西在我們的代碼是不是當我們得到後者時,按邏輯進行。

但是,這是什麼意思CONCEPTUALLY

謝謝..

+1

我的猜測是這意味着「最新」項目並沒有真正需要建立,因爲沒有任何改變自從最後一次構建 – millimoose 2013-02-21 13:05:01

+0

[Visual Studio使用什麼來確定構建是最新的?]的可能重複(http://stackoverflow.com/questions/2140003/what-does-visual-studio-use-to - 確定 - 是 - 一 - 構建 - 是 - 上 - 最新) – 2013-02-21 13:07:31

回答

7

一般Build: 1 succeeded指的是解決方案的成功編譯與它1項目。

Build: 1 succeeded or up-to-date意味着,在您的解決方案中的項目代碼並沒有改變,是沒有必要因此編譯。因此,1 Build Success or up-to-date

3

這意味着項目中沒有任何變化。 VS(以及MSBUILD真的),決定是否是最新如下:

來源:How does MSBuild decide whether it needs to rebuild a C# library or not?

如果您在Microsoft.CSharp.targets看(的MSBuild的文件 編譯C#項目)的CoreCompile目標有一組輸入並且定義了輸出 。如果需要運行CoreCompile,則用它們執行依賴性檢查,以查看 。輸入列表包括c#文件, 資源文件,應用程序圖標,強名稱密鑰文件以及您可以定義的其他 自定義輸入。

如果你有一個解決方案和運行的MSBuild上啓用診斷日誌記錄

跳過目標「CoreCompile:(/ V:診斷命令行參數),你可能會如果輸出是最新看到這個 消息「因爲所有輸出文件都是關於輸入文件的最新信息。

的目標文件位於.NET框架目錄(C:\ WINDOWS \ Microsoft.NET \框架\ v3.5版本或v4.0.30319

0

「上最新的」 項目以前建成成功,並且自那時以來沒有改變,所以它不會被重建。

相關問題