C# 对.exe和表单使用相同的图标
在我的WinForms应用程序中,如果我为我的应用程序设置了一个图标,并为我的窗体设置了一个图标,则该图标会在我的可执行文件中出现两次。有可能避免这种情况吗 (这个问题以前提过,但答案似乎没有解决问题。vanmelle的答案似乎只提取了一个图标(例如16x16),Sunlight的答案只提取了32x32,lc的答案没有解决问题:可执行文件中仍然有一个重复的图标。)C# 对.exe和表单使用相同的图标,c#,.net,winforms,C#,.net,Winforms,在我的WinForms应用程序中,如果我为我的应用程序设置了一个图标,并为我的窗体设置了一个图标,则该图标会在我的可执行文件中出现两次。有可能避免这种情况吗 (这个问题以前提过,但答案似乎没有解决问题。vanmelle的答案似乎只提取了一个图标(例如16x16),Sunlight的答案只提取了32x32,lc的答案没有解决问题:可执行文件中仍然有一个重复的图标。) 如果不可能完成这项任务,为什么会这样?在WinForms中,对可执行文件和表单使用相同的图标有什么困难?这是在完全非托管的操作系统上
如果不可能完成这项任务,为什么会这样?在WinForms中,对可执行文件和表单使用相同的图标有什么困难?这是在完全非托管的操作系统上运行托管代码的必然结果。Windows资源管理器只知道如何读取非托管资源。您可以查看它们的外观,在Visual Studio中使用File+Open+File并选择您的.exe。您通常会在此处看到三个资源组:
- RT_清单,包含告诉Windows您的程序支持Vista的清单
- 版本,包含具有从AssemblyInfo.cs文件派生的值的文件版本资源。在资源管理器中使用“属性+详细信息”选项卡时,可以看到其内容。请注意,超级重要的[AssemblyVersion]在Vista及更高版本中是如何不可见的
- 图标,包含您添加的图标
这也许有一天会改变,据说超级秘密的Midori项目将重点放在托管操作系统上。现在,我们只能靠胶水勉强度日。这是在完全非托管的操作系统上运行托管代码的必然结果。Windows资源管理器只知道如何读取非托管资源。您可以查看它们的外观,在Visual Studio中使用File+Open+File并选择您的.exe。您通常会在此处看到三个资源组:
- RT_清单,包含告诉Windows您的程序支持Vista的清单
- 版本,包含具有从AssemblyInfo.cs文件派生的值的文件版本资源。在资源管理器中使用“属性+详细信息”选项卡时,可以看到其内容。请注意,超级重要的[AssemblyVersion]在Vista及更高版本中是如何不可见的
- 图标,包含您添加的图标
这也许有一天会改变,据说超级秘密的Midori项目将重点放在托管操作系统上。现在,我们只能将就着用胶水了。对不起,我不明白你的回答。你是说有一种方法可以避免重复的图标吗?如果是,我如何使用rc.exe实现这一点?(另外,当我用File-->open File打开exe时,我看不到上面提到的任何内容。)“这是不可避免的结果”表示“不,无法避免”。不知道你为什么看不到我描述的。在VisualStudio中使用File+Open+File,至少从VS2005开始就支持此功能。选择任何文件,如c:\windows\notepad.exe抱歉,我不理解您的答复。你是说有一种方法可以避免重复的图标吗?如果是,我如何使用rc.exe实现这一点?(另外,当我用File-->open File打开exe时,我看不到上面提到的任何内容。)“这是不可避免的结果”表示“不,无法避免”。不知道你为什么看不到我描述的。在VisualStudio中使用File+Open+File,至少从VS2005开始就支持此功能。选择任意文件,如c:\windows\notepad.exe