【问题标题】:How to compile Delphi RES file from commandline如何从命令行编译 Delphi RES 文件
【发布时间】:2009-06-14 14:34:04
【问题描述】:

我以前从未使用过 Delphi,所以这个问题可能看起来很简单,但是我需要从命令行更改 RES 资源文件参数中的 FileVersion...

【问题讨论】:

    标签: delphi resources rc versioninfo


    【解决方案1】:

    这里可以找到Borland资源编译器:

    %ProgramFiles%\Borland\Delphi7\Bin\brcc32.exe

    编辑:正如 mghie 所说,您可以创建一个像这样的 RC 文件:

    VS_VERSION_INFO VERSIONINFO
    FILEVERSION 1, 0, 0, 100
    PRODUCTVERSION 1, 0, 0, 1
     FILEFLAGSMASK 0x3fL
    #ifdef _DEBUG
     FILEFLAGS 0x9L
    #else
     FILEFLAGS 0x8L
    #endif
     FILEOS 0x4L
     FILETYPE 0x1L
     FILESUBTYPE 0x0L
    BEGIN
        BLOCK "StringFileInfo"
        BEGIN
            BLOCK "040904b0"
            BEGIN
                VALUE "Comments", "Modified by BZCToOn's"
                VALUE "CompanyName", "Syntheretix"
                VALUE "FileDescription", "rcversion MFC Application"
                VALUE "FileVersion", "1, 0, 0, 100"
                VALUE "InternalName", "rcversion"
                VALUE "LegalCopyright", "Copyleft (C) Bzc ToOn'S 2002"
                VALUE "OriginalFilename", "rcversion.EXE"
                VALUE "PrivateBuild", "RCVERSION-20030212_100"
                VALUE "ProductName", "rcversion Application"
                VALUE "ProductVersion", "1, 0, 0, 1"
            END
        END
        BLOCK "VarFileInfo"
        BEGIN
            VALUE "Translation", 0x409, 1200
        END
    END
    

    (复制自http://www.codeproject.com/KB/applications/cb2rcversion.aspx

    并使用BRCC32 编译它。在您必须在项目设置中禁用版本信息之前。

    编辑:更多信息...

    http://msdn.microsoft.com/en-us/library/aa380599.aspx

    http://msdn.microsoft.com/en-us/library/aa381058.aspx

    【讨论】:

    • 当然可以。在项目选项中禁用版本资源,将版本资源添加到 rc 文件(可能与其他资源类型一起),使用命令行资源编译器将其编译为 res,并使用 {$R 文件名将其包含在程序中。 res} 指令。可以将多个 .res 文件链接到应用程序中。有些事情,比如从 SVN 版本中获取构建号,或者根据构建类型正确设置 DEBUG 资源标志,无法在 IDE 中完成。
    • @Savash:MSDN 拥有您需要的所有信息:msdn.microsoft.com/en-us/library/aa380599(VS.85).aspx。您应该确保在“翻译”块中使用正确的值,这取决于您的语言/程序所在的语言。在大多数文档和示例中,这将设置为英语语言环境,您可能需要更改值给你自己的。再次,请参阅 MSDN 文档了解更多详细信息。
    【解决方案2】:

    只是要添加到 ulrichb 的答案...

    提示:创建一个 .RC 文件并使用 {$R} 指令将其包含到您的项目中。

    {$R 'Splash.res' 'Splash.rc'}
    

    上面的指令是我用来包含初始屏幕图像的指令。它将自动编译 .RC 文件。 作为一个选项,您可以只将 .RC 包含到您的 Delphi 项目中,在这种情况下,上述行将添加到您的项目文件 (*.DPR) 中,并且它也会自动编译。 (您可以使用 Delphi 来编辑 .RC 文件。)

    请注意不要为资源文件指定与项目文件相同的名称。这对 Delphi 来说太混乱了。

    【讨论】:

      【解决方案3】:

      如果你使用delphi构建你的应用程序,你可以在projectsettings下开启buildnumber的自动递增。

      或使用StampVer

      【讨论】:

      • +1 作为 stampver 达到了预期的结果。我写了它:)
      • @PaulDixon 链接已损坏,elphin.com/downloads/stampver 是新位置吗?
      • 那个链接没问题,其他链接暂时挂了。我会确保它恢复正常!
      • @PaulDixon 似乎找不到 Stampver 的当前工作链接
      • 它在 cmets 中,但我已经编辑了原始帖子。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-21
      • 1970-01-01
      • 2023-03-19
      • 2019-01-14
      • 1970-01-01
      相关资源
      最近更新 更多