installer - 創建7-zip安裝程序包時出錯




7zip sfx (2)

我認為問題出現在7zip和7zip.sfx的不同版本中。 不幸的是,最新的7zip軟件包中缺少SFX文件。 以下是來自某些舊版本的7zip_extra的 link ,該版本同時包含SFX文件和.bat文件以創建安裝程序。 對我來說很好。

如果這不是正確的問題,我向你道歉。

我使用7zip創建一個安裝程序包。 最近,我的電腦更新了,我再也無法上班了。 我使用Visual Studio 2010中的Windows Installer來創建安裝包,我將其添加到名為setup.7z的文件中。 我已確認文件已正確存檔。 然後我打電話

copy /b 7zsd.sfx + config.txt + setup.7z setup.exe

它將所有內容打包成一個名為“ setup.exe ”的文件。 單擊此按鈕將啟動安裝程序。

更新後,我仍然可以製作文件,看起來很好。 但是,如果我嘗試點擊它,我會收到一條消息,說 7-Zip: Unsupported method.

我安裝了7-Zip版本18.05(x86)。 老實說,我不知道我在哪裡獲得了 7zsd.sfx 文件,但是記得不得不追捕它。 它沒有版本控制,但最後修改時間為7/13/2007。 我不知道版本是否重要,因為你不需要安裝7-Zip,因為這是一個自解壓文件。 但是,舊版本可能無法解壓縮由較新版本壓縮的內容。


設置工具 :為什麼選擇7-Zip? 創建(真實)設置有很多選擇 - 有幾個是免費的: 如何創建Windows安裝程序 (創建各種設置的工具的幾個鏈接)。 以下簡要描述 - 在“ Alternatives ”(免費工具或具有免費功能的工具)下。 這些工具已經過廣泛測試,以確保以最小的依賴性運行。 我猜想要記住並評估。

的7-Zip

猜猜 :首先安裝 C / C ++運行時 ,看看問題是否消失。 接下來檢查壓縮 - 然後檢查 LZMA SDK ,如下所述?

不受支持的壓縮? 7-Zip:不支持的方法 - 使用LZMA? 我想這個問題仍然可能發生,雖然答案是幾年前的答案。

缺少運行時? :您可能還希望對該 setup.exe 執行 依賴性walker 檢查,以查看它是否依賴於該框中缺少的內容(例如 MSVCRT.dll - 或其他運行時庫)。 只需下載該工具。 使用方便。 或者首先嘗試 install commonly used C/C++ runtimes 。 此外,Dependency Walker正在老化並且有時會顯示垃圾。 有更新的 Dependencies - 但它還不是黃金時段,但嘗試它(單擊 Releases 選項卡)。 它已更新為處理 Windows API集和WinSxS (並排程序集)。 注意 virustotal.com 上的幾個安全軟件將依賴關係視為“ 風險工具,而不是病毒 ”(它是開源的)。

LZMA SDK 7zSD.sfx 文件可能來自 LZMA SDK 。 您描述的命令行可以在主7-Zip幫助文件中找到(不是SDK,而是帶有常規7-zip安裝的文件)。 "-sfx (Create SFX archive) switch" Command Line Version => Switches => -sfc (Create SFX Archive

備擇方案

Visual Studio 2017 Visual Studio 的最新免費版本: Visual Studio Community 2017 可以通過其 Microsoft Visual Studio 2017安裝程序項目 創建 setup.exe 文件(此擴展必須在安裝Visual Studio 2017後安裝)。

WiX :開源 WiX工具包 可以使用其Burn組件創建 setup.exe 文件。 一個WiX Burn特別樣本 - 只是為了得到一般的想法 - 它有一個學習曲線。 沒有GUI可以幫助您,它都是基於XML的。 與Visual Studio一起使用或不使用。

高級安裝程序 :我相信 Advanced Installer 甚至可以在他們的免費版本中編譯 setup.exe 。 儘管下載量有點大,但我認為這對您有用並且速度很快。

高級安裝程序更新 免費版只能構建MSI文件,EXE引導程序可以使用付費版本(其中任何一個)構建。

dotNetInstaller :還有 dotNetInstaller Setup Bootstrapper - 我從未使用過。 這是github.com (來源)。

Inno NSIS :這些免費的 非MSI安裝程序 可以輕鬆地為您創建一個針對最小依賴性進行優化的 setup.exe 。 我沒有太多使用它們,但它們是眾所周知的。 NSIS似乎創建了與Zip工具兼容的存檔文件。

IExpress 等:存在影響這些自解壓程序包的 安全漏洞 。 我建議使用專用資源快速修復此類事情的“真正”部署工具的另一個原因,儘管有一個可以直接以7-zip打開的 setup.exe 的好處。

文件提取

關於從各種類型的 setup.exe 文件中 提取文件 的主題:

  • MSI 從EXE中提取MSI - 可以提取所有MSI文件,也可以提取使用WiX創建的 setup.exe 文件
  • NSIS和Inno :看起來NSIS創建的文件與7-Zip(可理解的壓縮)兼容,而Inno的外觀則不然。

一些鏈接

  • https://en.wikipedia.org/wiki/Self-extracting_archive#Overview :“ 對於解壓縮實用程序來正確擴展自解壓或標準變體的存檔,它必須能夠同時對文件格式和 因此,可能需要根據用於創建存檔的選項來改變放置在自解壓存檔開頭的確切可執行代碼 。與LZMA2相比,LZMA 7z存檔的解壓縮例程將有所不同。例如,7z檔案。