如何使用命令行实用程序编辑exe的资源(文件描述,图标等)?

Cod*_*396 9 .net deployment resources windows-installer iexpress

整个故事: 我创建了一个花哨的.NET程序,它有一个由Visual Studio Installer(VSI)创建的安装程序.VSI创建2个文件(setup.exe和MyProgramSetup.msi).我理解需要两个文件的原因,但是,我只想向用户分发一个SINGLE可执行安装程序.我不希望他们看到2个文件,必须在它们之间进行选择.

为了做到这一点,我已经使用IExpress将2个文件合并到一个自解压存档中(如本答案所示:Merge msi和exe).这很好用,但是,创建的自解压存档有一个丑陋的图标和令人困惑的文件信息(文件描述是"Win32 Cabinet Self-Extractor",后面有43个空格).

我需要用我的自定义替换图标并更改一些文件属性,如"描述","公司"等.我希望自动完成这个作为构建步骤,所以有一个程序,这是一个命令行/控制台实用程序会很棒.

我已经搜索了一段时间,只能找到一个完全符合我想要的程序(ResourceTuner控制台:http://www.heaventools.com/command-line_resource_editor.htm),但它花费了一条胳膊和一条腿,我的预算是0美元.

有没有人知道更好的方法来实现我想要的,或者知道一个程序可以替换可执行文件的资源而无需使用GUI?

顺便说一句,我还尝试过SiComponents的Resource Builder 3,它甚至无法打开可执行文件,而ResEdit只是在执行命令时崩溃:

resedit.exe -convert "Modified Resources.rc" "MyProgramSetup.exe"
Run Code Online (Sandbox Code Playgroud)

Ste*_*ary 8

如果打开可执行文件,Visual Studio可以编辑它们.不过,我不确定是否有办法从命令行执行此操作.

有一个很好的CodeProject文章处理图标(包括将它们保存到exe文件中).

公司名称,描述等是Version资源的一部分.另一篇CodeProject文章介绍了如何更新版本资源,尽管我没有深入研究过这一版本.

  • 您的第二个链接(VerPatch)非常适合更改版本资源.开源只有93KB,非常好!我使用以下命令:verpatch.exe"Blah Setup.exe"/ s CompanyName"Blah"/ s FileDescription"Blah"/ s InternalName"Blah"/ s LegalCopyright"Blah"/ s OriginalFilename"Blah" (3认同)

Gyl*_*son 5

仅回答文件版本信息问题,您可以在 IExpress .SED 文件中包含您自己的版本信息。此站点提供有关 IExpress .SED 文件部分和属性的其他详细信息。使用内置功能似乎比后处理 setup exe 更容易。

基本上,在 .SED 文件中,在选项部分包含 VersionInfo 参考。然后创建包含您的版本信息的部分。

[Options]
VersionInfo=VersionSection

[VersionSection]
FromFile= ;Uses the version info in this executable file
; or specify each attribute 
; or specify the FromFile and override individual attributes
FileDescription=
CompanyName=
FileVersion=
ProductVersion=
OriginalFilename=
LegalCopyright=
ProductName=
InternalName=
Run Code Online (Sandbox Code Playgroud)

顺便说一句, FileVersion 对我不起作用。天啊,