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

一、前言

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

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

二、添加版本信息

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

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

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

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

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

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

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

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

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

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

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

三、编辑版本信息

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

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

cpp 复制代码
// 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 (C) 2023",表明此程序的版权归属于2023年。
  • "OriginalFilename":原始文件名,指定生成文件的原始文件名。在给定的版本信息中,原始文件名被设置为"ConsoleA.exe"。
  • "ProductName":产品名称,表示此程序的名称。在给定的版本信息中,产品名称被设置为"C语言Demo"。
  • "ProductVersion":产品版本,指定此程序的发布版本号。在给定的版本信息中,产品版本被设置为"1.0.0.1"。
相关推荐
熊小猿4 小时前
在 Spring Boot 项目中使用分页插件的两种常见方式
java·spring boot·后端
paopaokaka_luck4 小时前
基于SpringBoot+Vue的助农扶贫平台(AI问答、WebSocket实时聊天、快递物流API、协同过滤算法、Echarts图形化分析、分享链接到微博)
java·vue.js·spring boot·后端·websocket·spring
小蒜学长5 小时前
springboot酒店客房管理系统设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端
橙子家5 小时前
Serilog 日志库简单实践(一):文件系统 Sinks(.net8)
后端
Yeats_Liao6 小时前
Go Web 编程快速入门 13 - 部署与运维:Docker容器化、Kubernetes编排与CI/CD
运维·前端·后端·golang
Yeats_Liao6 小时前
Go Web 编程快速入门 14 - 性能优化与最佳实践:Go应用性能分析、内存管理、并发编程最佳实践
前端·后端·性能优化·golang
七夜zippoe7 小时前
仓颉语言核心特性深度解析——现代编程范式的集大成者
开发语言·后端·鸿蒙·鸿蒙系统·仓颉
软件架构师-叶秋7 小时前
spring boot入门篇之开发环境搭建
java·spring boot·后端
QX_hao8 小时前
【Go】--接口(interface)
开发语言·后端·golang
superman超哥8 小时前
仓颉语言中正则表达式引擎的深度剖析与实践
开发语言·后端·仓颉