linux - 在 Linux 服务器上构建 windows 7z SelF-eXtracting 安装程序,如何更改 exe 图标?

标签 linux windows ubuntu 7zip

我的服务器是Ubuntu Server 12.04,我的客户端都是Windows。

所以我想为他们构建一些 Windows 安装程序。

最后,我发现 7z SelF-eXtracting 安装程序对我来说非常简单。 Ubuntu 有 p7zip,它可以制作 7z 压缩文件,并且可以通过以下命令使用 sfx 模块制作 windows 7z SelF-eXtracting 安装程序:cat 7zSD.sfx installer_config installer.7z > installer.exe

我在 http://downloads.sourceforge.net/sevenzip/7z920_extra.7z 下载了 7zip 额外包以使用其 sfx 模块

一切正常。唯一的问题是如何更改exe图标?我希望我的安装程序有一些不同的图标。使用脚本或一些cli软件更好,因为我的服务器没有X,我想批量操作。

谢谢。

最佳答案

将数据连接在一起很少会生成有效的 PE 可执行文件,除非您修改 PE header 以考虑该额外数据。它现在可能实际上“有效”,因为 Windows 版本在加载文件时是宽容的,并且 7z 可执行文件从磁盘加载有效负载,但事实仍然是您的 PE 可执行文件无效并且可能无法在某些 Windows 版本上工作。

但好消息是,通过使用资源编译器,您将解决这两个问题:图标和有效负载通常都是资源,因此您可以拥有一个“空的”7z 可执行文件,您可以在其中添加图标和要使用的数据一个资源编译器。

我从未尝试过在 Unix 上编译 Windows 可执行文件,但如果我愿意,我会看看 Wine,IIRC,它有一个在 Unix 上运行的资源编译器。

更新:http://www.winehq.org/docs/winelib-guide/wrc

关于linux - 在 Linux 服务器上构建 windows 7z SelF-eXtracting 安装程序,如何更改 exe 图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19943903/

相关文章:

从 cron 运行的 Bash 脚本

从 Matlab 调用的 Python 子进程失败

linux - 如何遍历文件并用行号回显每一行

linux - shell 脚本。我的脚本中的命令替换问题

linux - 如何在 shell 脚本中为结果集附加一列

linux - 如何校准 ti INA219 传感器? (在 C 中)

windows - git checkout -- <filename> 不会在 Windows 10 上恢复本地删除的符号链接(symbolic link)

windows - Win 10 UAP ListView 条件分隔符

java - 无法从 Java 程序中执行提示命令

c# - 在 Mono 中使用 UnixSignal 会引发 System.ArgumentException