如何使用命令行實用程序編輯 exe 的資源(文件描述、圖示等)?
整個故事: 我創建了一個精美的 .NET 程序,它有一個由 Visual Studio Installer (VSI) 創建的安裝程序。VSI 創建 2 個文件(setup.exe 和 MyProgramSetup.msi)。我了解需要這兩個文件的原因,但是,我只想向使用者分發一個可執行的安裝程序。我不希望他們看到 2 個文件並且必須在它們之間進行選擇。
為了做到這一點,我使用 IExpress 將 2 個文件合併到一個自解壓存檔中(如本答案所示:Merge msi and exe)。這很好用,但是,創建的自解壓存檔有一個醜陋的圖示和令人困惑的文件資訊(文件描述是“Win32 機櫃自解壓器”,後面有 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"
如果您打開執行檔,Visual Studio 可以編輯它們。不過,我不確定是否有辦法從命令行執行此操作。
有一篇不錯的CodeProject 文章處理圖示(包括將它們保存到 exe 文件中)。
公司名稱、描述等是版本資源的一部分。另一篇 CodeProject 文章介紹了更新版本資源,儘管我沒有深入研究過那個。
只回答文件版本資訊問題,您可以在 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=順便說一句, FileVersion 對我不起作用。YMMV,