【发布时间】:2017-04-04 22:49:59
【问题描述】:
我是 C# 的新手 我正在使用 Notepad++ 使用 Notepad++ 的 CS-Script 插件进行编码。 我在其中开发了一个小脚本。
在这样的脚本中,我使用了自己制作的托盘栏图标,并在脚本中包含了对它的引用以及以下代码行
trayIcon.Icon = new Icon("icon.ico");
这几乎可以满足我的需要...但请看下图以进行说明:
然后我准备使用 CS-Script 命令分发的 exe,它运行良好。问题是编译过程没有将图标包含到二进制文件中,所以我必须手动将其自身的图标文件包含到二进制文件的同一目录中:实际上,如果图标文件生成的 exe 文件会挂起并出现错误不包括在内。
问题:
有没有办法解决这个问题,将“二进制包”全部放在一个文件中,同时包含可执行部分和ico资源文件?
约束:
我知道我可以创建 rar、zip 或压缩的 exe(自解压文件),但我并不是说:我想要 1 个带有图标的 exe 文件,可以单独执行和移动。 换句话说,图标必须嵌入到独立的 exe 中,因为它是 exe 文件图标本身和 Windows 托盘栏的图标。
【问题讨论】:
-
请尝试使用
css_resource指令将您的图标包含到二进制文件中。 csscript.net/help/Using_Resources.html -
@UladzimirPalekh Tnx 回复:我已插入以下代码 //css_resource icon.ico; 现在包含文件,(exe 比以前大)但它仍然没有用作exe图标,如果图标不在目录中,exe仍然挂起。
-
我之前评论中的链接包含使用示例(最后一个带有
ResourceManager的 sn-p)。您也可以查看此问题以获取更多信息:stackoverflow.com/questions/13592150/load-image-from-resources -
@UladzimirPalekh 我查看了您发布的链接,并对代码进行了一些修改但仍然无法正常工作:我收到错误:错误 CS0103:名称“资源”不存在在当前情况下。 e:\C# Scripts\ScreenShots.cs(77,20): error CS0029: Impossible to convert the type System.Drawing.Bitmap' in 'System.Drawing.Icon' error CS0103: The name 'Assembly' non eseste nel Competitiono正确的。 e:\C# Scripts\ScreenShots.cs(71,19): 错误 CS1061:
-
'System.Resources.ResourceManager' 不包含'ResourceManager' 的定义,也没有找到任何扩展'ResourceManager' 的方法。 我已经用我的非英语语言翻译了错误文本我希望这对 Tnx 有帮助
标签: c# notepad++ exe cs-script