我是C#的新手,我用notepad++来为Notepad++编写CS脚本插件。我在里面写了个小剧本。
在这样的脚本中,我使用了我自己创建的traybar图标,并在脚本中包含了对它的引用,并包含了下面一行代码
trayIcon.Icon = new Icon("icon.ico");几乎可以满足我的需要..。但请看下面的图片以求澄清:

而不是我准备用CS-Script命令分发的exe,它工作得很好。问题是编译过程没有将图标包含到二进制文件中,所以我必须通过手将图标文件包含在二进制文件的同一个目录中:实际上,如果不包括图标文件,生成的exe文件会挂起错误。
问题:
有没有办法解决这个问题,将“二进制包”全部放在一个文件中,同时包含可执行部分和ico资源文件?
制约因素:
我知道我可以创建一个rar,zip,或压缩的exe (自解压缩文件),但我并不是说:我想要一个包含图标的exe文件,它可以单独执行和移动。换句话说,图标必须嵌入到单独的exe中,因为它是exe文件图标本身和窗口托盘的图标。

发布于 2017-04-05 21:03:16
我找到了从CS编译的二进制文件中的嵌入式资源中获取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);
}
}
}https://stackoverflow.com/questions/43219007
复制相似问题