C#如何将图标添加到.exe

C# how add icon into .exe

如何在 C# 中将 .ico 导入到 .exe 中? (我只想要一个文件)

在我的资源文件中:icon.ico

当我单击该图标时,在属性中我有:"Embedded Resource"

我应该做什么(改变)?

trayIcon.Icon = new Icon("c:\users\wulp\documents\visual studio 2013\Projects\WifiSwitch\WifiSwitch\Resources\icon.ico");

而且,我必须如何使用相对路径?

谢谢

您必须将图标添加为资源。

参见:https://msdn.microsoft.com/en-us/library/7k989cfy(v=vs.80).aspx

将其添加为资源后,您可以指向它。

我来到这里是为了寻找关于在输出中嵌入图标的书面解决方案 assembly/executable。但是这个被接受的答案并没有真正解释任何东西,除非你知道这个答案是如何作为一个概念与代码相关的。对于代码部分,乔纳斯给出的link也同时死亡。

设置为嵌入资源

但另一种方法是通过右键单击解决方案中的图标文件,将解决方案中的图标文件(最好)设置为 embedded 资源。并将字段 'Build Action' 设置为 'Embedded Resource'。默认设置为 'Content',这使得图标文件在 bin/output 文件夹中显示为单独的文件。

然后在运行时通过代码从assembly/executable文件加载图标。这与 Jonas probably 意味着 link 的想法略有不同(因为他指的是项目属性中的资源)。

下面代码的用法是 using System.Drawing; using System.IO; using System.Reflection;

      //note: this = the current windows form I'm setting the icon for, in my case.
        var assembly = Assembly.GetExecutingAssembly();//reflects the current executable
        var resourceName = $"{this.GetType().Namespace}.{this.ProductName}.ico";
        
      //note: this.ProductName reflects the executable's Product name in my solution (see current project, right click it, then click: properties - application - assembly information)

      //reading the source / icon file, in this case from the assembly (as the icon is embedded in here), but the icon can be loaded from anywhere at this point.
        using (Stream stream = assembly.GetManifestResourceStream(resourceName))
        {
            this.Icon = new Icon(stream);
        }

要在快捷方式或任务栏上显示正确的图标,请确保图标文件包含多种尺寸(从 48px x 48px 到 256px x 256px)。否则它会显示一个 resized/upscaled 图标。

在应用程序上设置图标 属性 级别

最后,通过右键单击项目(在解决方案资源管理器中)然后单击:属性 - 应用程序来设置项目的图标。在 'Resources' 处选择解决方案中的 .ico 文件。由于它以这种方式嵌入到程序集中,因此不需要在 bin / output 文件夹中复制版本。但我假设输出程序集现在包含两个图标,一个作为嵌入式资源,一个隐藏在程序集字节中的某个地方......因为遗漏其中一个会破坏图标显示功能,显示默认图标或不加载嵌入式资源图标。这个答案的好处是,作为输入,只有一个图标文件,最适合维护。

您机器上可能出现的故障是图标缓存 Windows

可能是机器的图标缓存有问题。这主要发生在开发应用程序和切换图标时,显示 former/previous 图标。在 Internet 上搜索“重置图标缓存 windows”,或此处的示例 https://www.windowscentral.com/how-reset-icon-cache-database-windows-10