2010-06-29 57 views
0

我正在使用Visual Studio 2008.是否有可能执行自动构建解决方案,以便您可以更改项目的资源文件/其他文件以将值带入?使用资源修改自动编译

例如,到期日。每次我需要新的失效日期时,我都必须打开解决方案,打开相关的源文件,修改失效日期,重建。

我想知道是否有可能缩短所有这些步骤,基本上,只需更改日期并构建而不必打开项目。

谢谢!

回答

1

您可以在不启动Visual Studio的情况下从命令行运行构建。
这与构建脚本一起/月做一次正常的方式建立

例子:

devenv /clean release /project ProjectName SolutionName.sln  
devenv /build release /project ProjectName SolutionName.sln 

变为rc文件并不总是被拾起/建立在VS2005/8,所以做一个干净的构建更安全。

然后,我有一个Python脚本,更新包含

#define VERSION_MAJOR 1 
#define VERSION_MINOR 12 
#define VERSION_BUILD 368 
#define VERSION_DATE "2010:06:19" 

这则包括在application.rc2文件version.h文件,。抱歉,不记得错综复杂的字符串宏步骤的原因。我发现它在几年前就已经在网络上出现了,现在可能有更简单的方法 - 但这已经从VC++ 6变成了VS2010!

#include "version.h" 

    #define _STR(x) #x 
    #define STR(x) _STR(x) 

    #define VERSION_STRING STR(VERSION_MAJOR) "." STR(VERSION_MINOR) ".0." STR(VERSION_BUILD) 

    VS_VERSION_INFO VERSIONINFO 
    FILEVERSION VERSION_MAJOR,VERSION_MINOR,0,VERSION_BUILD 
    PRODUCTVERSION VERSION_MAJOR,VERSION_MINOR,0,VERSION_BUILD 
    FILEFLAGSMASK 0x17L 
    #ifdef _DEBUG 
    FILEFLAGS 0x1L 
    #else 
    FILEFLAGS 0x0L 
    #endif 
    FILEOS 0x4L 
    FILETYPE 0x1L 
    FILESUBTYPE 0x0L 
    BEGIN 
     BLOCK "StringFileInfo" 
     BEGIN 
      BLOCK "080904b0" 
      BEGIN 
       VALUE "FileDescription", "XXX Application" 
       VALUE "FileVersion", VERSION_STRING "\0" 
       VALUE "InternalName", "XXX" 
       VALUE "LegalCopyright", "Copyright (C) 2010" 
       VALUE "LegalTrademarks", "XXX" 
       VALUE "ProductName", "XXX Application" 
       VALUE "ProductVersion", VERSION_STRING "\0" 
      END 
     END 
     BLOCK "VarFileInfo" 
     BEGIN 
      VALUE "Translation", 0x809, 1200 
     END 
    END 

最后将其列入application.rc

#include "res\application.rc2" // non-Microsoft Visual C++ edited resources 

这一切都证明有必要,因为Visual Studio中会覆盖外部的变化时,在对话框编辑器打开.rc文件 - 唐”不知道这是否已经在更新的版本中修复,并且它是MFC的一个问题。

+0

任何示例?一些链接将会很好。 – user303907 2010-06-29 04:59:15