我们的经理希望在图标上显示工具提示,以显示应用的构建日期。我想有一个在构建时分配正确值的变量,所以我不必记得每次编译时都要更改它。有没有办法在C#/ .Net中执行此操作?
答案 0 :(得分:3)
尝试以下代码行
DateTime buildDate =
new FileInfo(Assembly.GetExecutingAssembly().Location).LastWriteTime;
相对答案:How to put the build date of application somewhere in the application?
答案 1 :(得分:1)
回答一般性问题:不,除了对数值类型和字符串连接的简单算法之外,没有办法让C#编译器在编译时做任何工作。你不能让它嵌入当前日期。
但是,出于这个特定目的,您可以使用Jeff Atwood的博文中的“第三条道路”:http://www.codinghorror.com/blog/2005/04/determining-build-date-the-hard-way.html
答案 2 :(得分:1)
最简单的方法是从.exe或.dll本身检查文件日期/时间:
Assembly asm = Assembly.GetExecutingAssembly();
if( asm != null && !string.IsNullOrEmpty(asm.Location) ) {
FileInfo info = new FileInfo(asm.Location);
DateTime date = info.CreationTime;
}
答案 3 :(得分:0)
如何编制解决方案?
如果是使用Visual Studio进行常规编译,则可以设置Pre-Build事件以运行脚本并更改包含日期的代码文件。
答案 4 :(得分:0)
您可以创建一个在构建时调用的工具,并将当前时间作为常量插入到代码文件中,如assemblyinfo.cs。
另一种方法是从可执行文件中读取文件修改时间。