VisualStudio(VS)设置程序的版本信息(C-C++)

一、前言

在软件开发过程中,通常需要为生成的程序添加一些重要的元数据,如版本号、公司名称和版权信息。这些信息不仅可以提供对程序的更详细描述,还可以帮助用户了解程序的来源和使用限制。在 Visual Studio (以2017为例)中,可以轻松地设置这些信息,使应用程序具有更专业、规范的要求。

本文将介绍如何在 Visual Studio 2017 中设置生成程序的版本信息、公司信息和版权信息逐步指导大家完成这个过程,无论是开发新项目,还是为现有项目添加这些重要的元数据,都能从本文中获得帮助。下面将详细说明每个步骤,并提供示例和提。

二、添加版本信息

【1】选择左边项目选项卡,鼠标点击右键,点击添加,选择新建项。

image-20230803174014485

【2】选项资源—>资源文件(.rc)—>最后点击添加。

image-20230803174104948

【3】添加之后在解决方案选项卡里就可以看到添加的资源文件,双击资源文件就可以打开编辑资源。

image-20230803174212742

【4】在资源编辑页面,右键,点击添加资源。

image-20230803174319446

【5】选择版本,点击新建。

image-20230803174356229

【6】填写版本信息,公司信息等数据。

image-20230803174429610

下面是填写好的: 我只是填写了文件版本和公司名称。

image-20230803174632460

【7】回到解决方案页面,重新编译生成程序。

image-20230803174714174

image-20230803174726999

【8】在应用程序目录下,查看版本信息。

把鼠标光标放在文件上就会弹出提示状态窗,看到文件信息。

image-20230803174942193

在文件属性里可以看到信息。

image-20230803174901372

三、编辑版本信息

版本文件创建之后,在代码目录下可以看到刚才创建的版本资源文件。

image-20230803175108620

用记事本打开之后就能看到刚才填写信息,在这里更改重新编译代码也可以的(要注意格式)。

image-20230803175129061

// Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"

/
#undef APSTUDIO_READONLY_SYMBOLS

/
// 中文(简体,中国) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED

#ifdef APSTUDIO_INVOKED
/
//
// TEXTINCLUDE
//

1 TEXTINCLUDE 
BEGIN
    "resource.h\0"
END

2 TEXTINCLUDE 
BEGIN
    "#include ""winres.h""\r\n"
    "\0"
END

3 TEXTINCLUDE 
BEGIN
    "\r\n"
    "\0"
END

#endif    // APSTUDIO_INVOKED


/
//
// Version
//

VS_VERSION_INFO VERSIONINFO
 FILEVERSION 2,0,0,88
 PRODUCTVERSION 1,0,0,1
 FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x40004L
 FILETYPE 0x1L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "080404b0"
        BEGIN
            VALUE "CompanyName", "DS小龙哥"
            VALUE "FileDescription", "C语言Demo"
            VALUE "FileVersion", "2.0.0.88"
            VALUE "InternalName", "ConsoleA.exe"
            VALUE "LegalCopyright", "Copyright (C) 2023"
            VALUE "OriginalFilename", "ConsoleA.exe"
            VALUE "ProductName", "C语言Demo"
            VALUE "ProductVersion", "1.0.0.1"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x804, 1200
    END
END

#endif    // 中文(简体,中国) resources
/



#ifndef APSTUDIO_INVOKED
/
//
// Generated from the TEXTINCLUDE 3 resource.
//


/
#endif    // not APSTUDIO_INVOKED


四、字段含义介绍

在上面给定的版本信息中,资源字段代表的含义如下:

  • “CompanyName”:公司名称,表示开发和拥有此程序的公司或组织。在给定的版本信息中,公司名称被设置为"DS小龙哥666"。
  • “FileDescription”:文件描述,用于描述文件的用途或功能。在给定的版本信息中,文件描述为"C语言Demo",表明这个文件是一个C语言示例程序。
  • “FileVersion”:文件版本,指定生成文件的具体版本号。在给定的版本信息中,文件版本被设置为"2.0.0.88"。
  • “InternalName”:内部名称,指定生成文件的内部名称。在给定的版本信息中,内部名称被设置为"ConsoleA.exe"。
  • “LegalCopyright”:版权信息,表示此程序的版权归属。在给定的版本信息中,版权信息被设置为"Copyright © 2023",表明此程序的版权归属于2023年。
  • “OriginalFilename”:原始文件名,指定生成文件的原始文件名。在给定的版本信息中,原始文件名被设置为"ConsoleA.exe"。
  • “ProductName”:产品名称,表示此程序的名称。在给定的版本信息中,产品名称被设置为"C语言Demo"。
  • “ProductVersion”:产品版本,指定此程序的发布版本号。在给定的版本信息中,产品版本被设置为"1.0.0.1"。