2009-12-06 76 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

简短的回答:没有。

想一想:什么时候编译?最后编译?所有在去年完成的汇编?

你必须自己来计算。详细说明你想达到的目标,人们将能够为你提供更好的答案。