使用版本信息编译DLL

14

如何通过命令行编译Windows DLL中的版本信息?我一直在查看VersionInfo文件,但无法弄清如何将它们链接到DLL。

谢谢

3个回答

18
你需要创建一个版本资源并将其添加到你的项目中。这可以非常容易地在Visual Studio中完成。在VS 2008中,右键单击项目的文件夹,选择添加,在“Visual C++”下选择“资源文件”(不是资源模板),在刚刚创建的资源文件中,你将能够添加一个版本资源,它看起来像这样:
VS_VERSION_INFO VERSIONINFO
 FILEVERSION 1,0,0,1
 PRODUCTVERSION 1,0,0,1
 FILEFLAGSMASK 0x17L
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x4L
 FILETYPE 0x1L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904b0"
        BEGIN
            VALUE "FileDescription", "XXX Application"
            VALUE "FileVersion", "1, 0, 0, 1"
            VALUE "InternalName", "XXX"
            VALUE "LegalCopyright", "Copyright (C) 2010"
            VALUE "OriginalFilename", "XXX.exe"
            VALUE "ProductName", "XXX Application"
            VALUE "ProductVersion", "1, 0, 0, 1"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1200
    END
END

从命令行中,你需要使用rc.exe,即资源编译器,然后将结果链接到你的dll文件。

1
https://dev59.com/9XRA5IYBdhLWcg3wuAUo 这个链接也很有帮助。 - E-rich

8

在解决方案资源管理器中右键单击项目名称,选择“添加”,然后选择“资源”。选择版本。在新创建的VS_VERSION_INFO的底部窗格中,只需相应地修改每个值,重新构建,即可获取版本信息。


这个问题并不是特别针对Visual Studio的,但由于我正在使用它,所以得到了帮助并投了票。也许你应该添加信息说明它是针对Visual Studio的。 - 244an
这种方法对于 Visual Studio 来说是最直接的! - Jeff T.

2

通常情况下,您需要在.rc文件中添加一个VersionInfo资源,并使用资源编译器(rc.exe)进行编译。不幸的是,我不知道任何(最近的)源格式文档。不过,仿照VS生成的内容似乎也可以正常工作...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接