记事本 ++ 的 CS 脚本为带有图标的分发准备 exe

CS-Script for notepad++ prepare exe for distribution with icon

我是 C# 的新手 我正在使用 Notepad++ 通过 Notepad++ 的 CS-Script 插件进行编码。 我在其中开发了一个小脚本。

在这样的脚本中,我使用了我自己制作的托盘栏图标,并在脚本中包含了对它的引用以及下面的代码行

trayIcon.Icon = new Icon("icon.ico");

这几乎可以满足我的需要...但请查看下图进行说明:

我用 CS-Script 命令准备要分发的 exe,它运行得很漂亮。问题是编译过程没有将图标包含到二进制文件中,所以我必须手动将图标文件包含到二进制文件的同一目录中:实际上,如果图标文件生成的 exe 文件挂起并出现错误不包括在内。

问题:

有没有办法解决这个问题,把"binary package"的可执行部分和ico资源文件全部放在一个文件里?

限制条件:

我知道我可以创建一个 rar、zip 或压缩的 exe(自解压文件),但我不是那个意思:我想要 1 个带有图标的 exe 文件,可以单独执行和移动. 换句话说,图标必须嵌入到独立的 exe 中,因为它是 exe 文件图标本身和 windows 托盘栏的图标。

我找到了这种从 CS-Script 编译二进制文件中的嵌入式资源获取 Icon 的方法。图标文件名为 alpha.ico.

请关注using部分。

//css_resource alpha.ico

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Reflection;

class Script
{
    [STAThread]
    static public void Main(string[] args)
    {
        var assembly = Assembly.GetExecutingAssembly();

        using (var stream = assembly.GetManifestResourceStream("alpha.ico"))
        {
            var icon = new Icon(stream);
        }
    }
}