2009-12-06 80 views
2

是否有任何可以在.net環境中獲取編譯時間的虛擬機?獲取編譯時間

我在找C++中的__DATE__之類的東西,我需要在代碼編譯的時候放入我的窗口。

謝謝

回答

2

儘管別人已經回答了,但簡短的答案是肯定的。

您可以對您的程序集使用版本格式「1.0。*」,並且編譯器會將編譯日期/時間添加到版本號字符串的末尾 - 這可以很容易地從ExecutingAssembly中讀取。

詳情請參閱here

+0

大多數敏捷商店都會有一個版本號,VCS的版本作爲預生成步驟寫入AssemblyInfo文件,因此這是不可行的。另外,由於OP的含義如下,所以它確實是一個便宜的黑客攻擊:「有沒有像'Environment.CompileTime'之類的東西? – 2009-12-06 13:54:50

+0

我不同意。 OP詢問在編譯器中是否有一個選項提供編譯程序集的日期/時間,並且存在 - 您可以要求它將此信息標記爲版本號。如果您需要這兩種信息,其他信息(例如VCS修訂版)可以輕鬆添加到其他屬性中。 – 2009-12-06 17:12:37

2

有沒有內置的方式來做到這一點。

但是,您可以進行預生成步驟,將當前時間寫入文件的static readonly字段中。

編輯:例如:

echo using System; > CompileTime.cs 
echo namespace MyCompany.MyProduct { >> CompileTime.cs 
echo  static class Compilation { >> CompileTime.cs 
echo   public static readonly DateTime TimeStamp = DateTime.Parse("%date%%time%", System.Globalization.CultureInfo.InvariantCulture); >> CompileTime.cs 
echo  } >> CompileTime.cs 
echo } >> CompileTime.cs 
+0

這是爲什麼downvoted? – SLaks 2009-12-06 13:29:49

-3

簡短的回答:沒有。

想一想:什麼時候編譯?最後編譯?所有在去年完成的彙編?

你必須自己來計算。詳細說明你想達到的目標,人們將能夠爲你提供更好的答案。