C# VERSIONINFO-忽略自定义值

C# VERSIONINFO-忽略自定义值,c#,c++,.net,windows-shell,C#,C++,.net,Windows Shell,我目前正在开发一个.NET项目,用于在运行时构建可执行文件 我想在build exe的Properties/Details选项卡中显示一些自定义值,所以我对这个主题做了很多研究。我发现这些值是由Windows资源管理器外壳从嵌入在可执行文件中的资源中读取的。接下来的步骤是根据创建一个.RC文件,在StringFileInfo部分添加我的自定义值,使用MS中的资源编译器将其编译为.RES,然后使用将其嵌入exe(就像在Visual Studio中打开项目属性并在应用程序选项卡上选择.RES文件一样

我目前正在开发一个.NET项目,用于在运行时构建可执行文件

我想在build exe的Properties/Details选项卡中显示一些自定义值,所以我对这个主题做了很多研究。我发现这些值是由Windows资源管理器外壳从嵌入在可执行文件中的资源中读取的。接下来的步骤是根据创建一个.RC文件,在StringFileInfo部分添加我的自定义值,使用MS中的资源编译器将其编译为.RES,然后使用将其嵌入exe(就像在Visual Studio中打开项目属性并在应用程序选项卡上选择.RES文件一样)

我认为这将是一个非常有效的解决方案,但不幸的是,事实并非如此。我的Windows 7资源管理器外壳未显示自定义值。。。我做错了什么?这样做有可能吗


编辑:My.RC文件内容为。

Windows不会在“属性”对话框的“详细信息”窗格中显示自定义值。显示的值在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.

很难说你做错了什么,因为你没有显示任何细节。您至少要显示资源文件。我也有点怀疑explorer是否会在properties对话框的details窗格中显示您的自定义值。你有什么证据证明这一点。@DavidHeffernan我已经添加了指向我的res文件内容的链接。我必须承认,我没有任何证据证明这一点,也没有任何证据反对这一点。我在互联网上只找到了一些线索,我见过很多类似的帖子,但没有一个能回答这个问题。我担心这是不可能的。不管怎样,谢谢你的回答。shell确实显示自定义values@Andrei这里没有。