用于记事本的CS-Script ++使用图标准备exe以进行分发

时间:2017-04-04 22:50:00

标签: c# notepad++ exe cs-script

我是C#的全新手 我使用Notepad ++编写了带有记事本++的CS-Script插件。 我已经开发了一个小脚本。

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

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

这几乎与我的需要一样......但请看下面的图片以便澄清:

Binary with the embedded Icon file

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

问题:

有没有办法解决问题并制作"二进制包"所有在一个文件中同时包含可执行部分和ico资源文件?

约束:

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

Screenshot of CS-Script in Notepad++

1 个答案:

答案 0 :(得分:1)

我已经找到了这种方法从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);
        }
    }
}