您可能知道Windows有这个选项,您可以在其中查看二进制文件的属性,它将显示有关作者,版本号,公司等的信息......我们希望将其放入我们的自动编译系统中。在编译二进制文件之后将此版本信息添加到二进制文件中是可取的,但是有关如何完成此操作的任何信息都会有所帮助。当然,这需要是程序化的;我们不能打扰每天手动将信息输入资源黑客5000个二进制文件。
有没有人曾经这样做过?怎么可能呢?
答案 0 :(得分:10)
看起来最好的解决方案(至少对我们来说)是使用RC文件。
1 VERSIONINFO
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "File Version", "1.0.4"
VALUE "Build Number", "3452"
END
END
END
将其编译成.res文件
rc.exe /fo Results/version.res version.rc
然后将其与其他目标文件链接。
答案 1 :(得分:3)
查找项目的AssemblyInfo.cs。
但是这必须在编译之前填写。但是您可以在许多二进制文件之间共享一个AssemblyInfo.cs。并且您不必使用这个确切的文件名 - 因此您可以将信息拆分为更多文件...一个关于公司的常规文件,一个关于产品的文件,一个关于二进制文件版本的文件。
/ Individual Information
[assembly: AssemblyTitle( "" )]
[assembly: AssemblyDescription( "" )]
// Version information
[assembly: AssemblyVersion( "1.0.*" )]
[assembly: AssemblyInformationalVersion( "1.0.0.0" )]
// General Information
[assembly: AssemblyConfiguration( "" )]
[assembly: AssemblyCompany( "" )]
[assembly: AssemblyProduct( "" )]
[assembly: AssemblyCopyright( "" )]
[assembly: AssemblyTrademark( "" )]
[assembly: AssemblyCulture( "" )]
[assembly: NeutralResourcesLanguage( "en" )]
答案 2 :(得分:1)
答案 3 :(得分:0)
假设Windows PE二进制文件,版本信息存储在PE标题中,位于IMAGE_OPTIONAL_HEADER
部分下的位置:
WORD MajorImageVersion
WORD MinorImageVersion
关于this documentation所说的内容:
用户可定义的字段。这允许您具有不同版本的EXE或DLL。您可以通过链接器/ VERSION开关设置这些字段。例如,“LINK /VERSION:2.0 myobj.obj”