gpt4 book ai didi

c# - VERSIONINFO - 忽略自定义值

转载 作者:太空宇宙 更新时间:2023-11-04 13:58:25 26 4
gpt4 key购买 nike

我目前正在开发一个使用 CSharpCodeProvider 的 .NET 项目在运行时构建可执行文件。

我想在构建的 exe 的“属性/详细信息”选项卡中显示一些自定义值,因此我对该主题进行了大量研究。我发现这些值是由 Windows Explorer shell 从可执行文件中嵌入的资源中读取的。接下来的步骤是根据 specification 创建一个 .RC 文件,在 StringFileInfo 部分添加我的自定义值,使用 MS 的 Resource Compiler 将其编译为 .RES,然后使用 /win32res compiler option 将其嵌入到 exe 中(就像在 Visual Studio 的“应用程序”选项卡上打开“项目属性”并选择 .RES 文件一样)。

我认为这将是一个非常有效的解决方案 - 但不幸的是它不是。我的 Windows 7 Explorer shell 没有显示自定义值...我做错了什么?是否有可能以这种方式实现这一目标?

编辑:我的 .RC 文件内容是 here .

最佳答案

Windows 不会在属性对话框的详细信息 Pane 中显示您的自定义值。显示的值是硬编码在 shell 中的,shell 根本不会解析您的资源并查找它一无所知的值。因此,恐怕您尝试做的事情注定要失败。

顺便说一句,您确实需要在资源脚本中以 null 结尾的字符串。所以不是:

VALUE "FileDescription", "Test file"
VALUE "FileVersion", "1.0.0.0"
// etc.

你需要:

VALUE "FileDescription", "Test file\0"
VALUE "FileVersion", "1.0.0.0\0"
// etc.

关于c# - VERSIONINFO - 忽略自定义值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20326471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com