Visual studio 2010 命令行定义rc.exe ms资源编译器在VersionInfo中设置版本值

Visual studio 2010 命令行定义rc.exe ms资源编译器在VersionInfo中设置版本值,visual-studio-2010,command-line,versioninfo,Visual Studio 2010,Command Line,Versioninfo,我正在尝试配置我们的资源构建,以便在命令行上获取版本信息 rc.exe/DVERCSV=8,0,0,0/DVERDOT=“8.0.0.0” 我以为一开始就可以,但似乎有一些小故障 在资源管理器中查看时,我似乎受到了损坏-显示ProductVersion字符串中的垃圾,但是打开exe或res文件会正确显示字符串值 但是,如果将值直接存储在rc中,或在visualstudio ReSurce编辑器中将其编辑为“相同”值(进行微小更改以使其保存),则资源管理器能够显示所需的值(编译为.res后) 我试

我正在尝试配置我们的资源构建,以便在命令行上获取版本信息

rc.exe/DVERCSV=8,0,0,0/DVERDOT=“8.0.0.0”

我以为一开始就可以,但似乎有一些小故障

在资源管理器中查看时,我似乎受到了损坏-显示ProductVersion字符串中的垃圾,但是打开exe或res文件会正确显示字符串值

但是,如果将值直接存储在rc中,或在visualstudio ReSurce编辑器中将其编辑为“相同”值(进行微小更改以使其保存),则资源管理器能够显示所需的值(编译为.res后)

我试过其他各种方法来解决这个问题

  • 缺少尾随空?
    • 值“ProductVersion”,VERDOT“\0”
    • \DVERDOT=“8.0.0.0\0”
  • 命令
  • 其他翻译
  • 对代码页的更改
  • #pragma代码第页(1200)
  • 次要#在文件中定义
  • 使用#VERDOT在字符串周围添加引号
  • 改为使用CSV值

我也看到了腐败,不太确定它是否与您的案例相符,因为我使用了IDE,而您没有描述您所看到的。下次发布屏幕截图。数字以二进制而不是ASCII格式嵌入,在属性表中查看时生成一个字符,即一个带白色中心圆的黑色矩形。字符代码8

我在字符串周围加了两对双引号,这样内部的一对就可以通过cmd.exe保存下来:

/DVERDOT=""8.0.0.0""

这有助于我实现这一目标——接下来的问题是,命令不是从命令行运行的,而是通过windows api执行的,因此我需要的不是“8.0.0.0”,而是“8.0.0”
/DVERDOT=""8.0.0.0""