2015-10-02 39 views
0

我试图将图标添加到构建在Visual Studio中的.NET exe文件,但不知何故,它不起作用。将图标添加到Visual Studio中的Windows资源中

下面是步骤来重现问题:1。 我创建了一个新的Windows窗体应用程序: 新建项目 - > Windows窗体应用程序 2.打开它的资源: 右键单击解决方案 - >属性 - >资源 3.试图添加一个图标文件: 图标 - >添加资源 - >添加Exising File->并选择一个现有的图标。

它似乎已添加图标。所以,我构建了exe文件并关闭了解决方案,但是生成的exe文件没有包含Windows资源中的图标。我验证了通过Visual Studio打开exe文件。 Visual Studio向我展示了资源,其中包含清单和版本,但没有图标。

问题:我做错了什么?为什么添加的图标不会出现在Windows资源中?

回答

0

资源是否显示在您的解决方案资源管理器中?如果没有,我会检查here并按照这些步骤操作。此外,检查实际上是在增加的资源,你可以添加这样的事情

MessageBox.Show(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames().Aggregate((x,y)=> x + " " + y)); 

请注意,这表明你的资源,你必须导航到该资源在Solution Explorer中,打开它的属性,并选择Build Action - > Embedded Resource。 (您也可以使用Resource,请参阅文章here以了解两个选项之间的区别)

作为最后一点,在完成此操作后,我尝试使用您的过程在Visual Studio中打开.exe,并且确实无法在视图中找到资源。然而,在dotPeek中打开相同的exe文件,我可以在资源下找到我在代码中嵌入的整个图像。

+0

我看到在资源文件夹中的添加图标。当我添加MessageBox时,我看到:<程序名> .Properties.Resources.resources>。 然后我将'Build Action'更改为'Embedded Resources',消息更改为:<程序名> .Resources。 Properties.Resources.resources>' 但我仍然无法当我打开exe文件时,看到Windows资源中的图标。 – svat

+0

是否通过Visual Studio打开exe文件时看到图标的目标?还是它将图标添加到DLL?因为你已经实现了后者,而前者可能是Visual Studio的限制。我能够看到使用dotPeek嵌入的资源,这在处理exes时看起来更加健壮。 – Kolichikov

+0

目标是将所选图标添加到exe资源。无论我使用什么工具,我都看不到exe资源中的图标。也许它嵌入了某处,但它不在资源中。 – svat

0

管理资源以与Win32资源不同的方式嵌入到程序集中。

如果目标只是添加默认图标,则可以使用项目属性中的“应用程序”选项卡完成。

如果目标添加任意的Win32资源,那么答案可以在这里找到:How to embed a resource in a .NET PE executable?

相关问题