我是C#的全新手 我使用Notepad ++编写了带有记事本++的CS-Script插件。 我已经开发了一个小脚本。
在这样的脚本中,我使用了自己创建的托盘栏图标,并在脚本中包含了对它的引用,其中包含以下代码行
trayIcon.Icon = new Icon("icon.ico");
这几乎与我的需要一样......但请看下面的图片以便澄清:
我准备使用CS-Script命令分发exe,它运行得很漂亮。问题是编译过程没有将图标包含在二进制文件中,所以我必须手动将图标文件包含在二进制文件的同一目录中:实际上生成的exe文件会挂起,如果错误,图标文件不包括在内。
有没有办法解决问题并制作"二进制包"所有在一个文件中同时包含可执行部分和ico资源文件?
我知道我可以创建一个rar,zip或压缩的exe(自解压文件),但我并不是说:我想要一个带有图标的exe文件,可以执行并单独移动。 换句话说,图标必须嵌入到独立的exe中,因为它是exe文件图标本身和windows托盘栏的图标。
答案 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);
}
}
}