Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加构建日期(VS 2010-C+;+;)_C#_C++_Visual Studio_Visual Studio 2010 - Fatal编程技术网

C# 添加构建日期(VS 2010-C+;+;)

C# 添加构建日期(VS 2010-C+;+;),c#,c++,visual-studio,visual-studio-2010,C#,C++,Visual Studio,Visual Studio 2010,最近,我在XNA中构建了一个游戏,在AssemblyInfo源文件中,我可以将AssemblyVersion设置为x.x.*并将构建和修订设置为项目编译的日期和时间。我现在正在做C++项目,我想知道我如何复制这个功能。这两种方法都可以使exe文件显示该版本以及我可以通过编程方式获取该版本的方式。谢谢。您可以使用添加日期宏,我相信这是一个很好的解决方案 The compilation date of the current source file. The date is a string lit

最近,我在XNA中构建了一个游戏,在AssemblyInfo源文件中,我可以将AssemblyVersion设置为x.x.*并将构建和修订设置为项目编译的日期和时间。我现在正在做C++项目,我想知道我如何复制这个功能。这两种方法都可以使exe文件显示该版本以及我可以通过编程方式获取该版本的方式。谢谢。

您可以使用

添加日期宏,我相信这是一个很好的解决方案

The compilation date of the current source file. The date is a string literal of the form Mmm dd yyyy. The month name Mmm is the same as for dates generated by the library function asctime declared in TIME.H.

它们确实有用,但也不是非常准确:在VS中,您可以编译一个文件a.cpp,几周后返回,更改所有其他内容,然后构建整个项目。a.obj中的日期仍将是原始日期。@stijn您确定吗?(我对DATE很感兴趣,因为我经常使用DATE)但从未注意到这一点。我只是再次测试了它,是的,我确信它是这样工作的。取任意dll/exe项目,添加#定义stringize(x)stringize(x)#定义stringize(x)#x const char*date=“myTime”stringize(TIME);对于源文件,编译它,等待一段时间,然后构建。在文本编辑器中打开可执行文件并查找“myTime”,您将看到原始时间。顺便说一句,这样做的一个好方法是使用预构建或后构建事件,在其中您以某种方式将日期/时间注入到构建中。我使用一个预构建事件来调用可执行文件,该可执行文件在AssemblyInfo(或C++的版本资源)中设置日期、时间和VCS版本号。另一种方法是:始终重建;]关于标准构建期间的准确性,在准备好交付产品之前,您通常不会在意。在这一点上,你将做一个干净的建设无论如何,一切都将自动更新。但我确实同意预构建事件是一条路。请参阅此问题的答案: