我有,我沒有任何的源代碼的安裝程序。我需要「包裝」這個安裝程序或編輯它來添加更多的文件。什麼是最好的方法來做到這一點?正如標題所述,安裝程序是用w/ghost安裝程序編寫的。如何反向設計使用ghost-installer編寫的安裝程序?
回答
因爲它不是一個MSI,您不能使用Orca to edit the installer itself。我之前也寫過custom install actions以及我的MSI安裝程序。
既然你沒有太多的控制(如果有的話)在你的鬼安裝程序,我或許會寫一個自定義的可執行文件,以補充安裝程序,可之前或安裝後運行。這將創建一些額外的文件分發給您的客戶,但您可以將整個文件分發爲zip存檔。
首先,如果你想創建一個非託管的引導程序的相同方式的Visual Studio確實保證的先決條件安裝,你可以用一個腳本做到這一點通過的MSBuild類似如下:
<Project ToolsVersion="3.5" DefaultTargets="BuildBootstrapper" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<BootstrapperFile Include="Microsoft.Net.Framework.2.0">
<ProductName>Microsoft .NET Framework 2.0</ProductName>
</BootstrapperFile>
</ItemGroup>
<Target Name="BuildBootstrapper">
<GenerateBootstrapper
ApplicationFile="CustomInstallerExecutable.exe"
ApplicationName="Pretty Title of Application Goes Here"
BootstrapperItems="@(BootstrapperFile)"
ComponentsLocation="Relative" />
</Target>
</Project>
這將生成一個「setup.exe」,這是安裝程序的任何引導程序的事實上的文件名。事實上,如果你想確保用戶不小心跳過引導程序,直接進入安裝程序,你可以隱藏在「bin」文件夾或東西從zip文件的根目錄走鬼安裝。這樣,他們唯一直觀的選擇就是「setup.exe」。爲了客戶的利益,如果您需要非常清楚,請包含一個「README.txt」。
該引導程序還做了什麼,確保客戶端具有.NET 2.0 Framework作爲先決條件,以便您的「CustomInstallerExecutable.exe」可以用.NET編寫,而不是以非託管語言編寫。事實上,這種的MSBuild腳本將撲通一聲倒在.NET 2.0框架安裝您的新創建的引導程序在身旁,(因爲「ComponentsLocation」屬性的「相對」值)。如果您擔心Ghost Installer下載到您的客戶的原始下載大小會有所增加,您可以使用其他的屬性值來幫助用戶通過Web獲得.NET Framework。
現在,您的「CustomInstallerExecutable.exe」(用漂亮的託管C#編寫)可以在運行Ghost安裝程序之前(或之後)將額外文件放在機器上。我以前寫一些代碼從.NET可執行文件運行MSI:
string msiString = "blahBlah.msi";
// Kick off Update installer
ProcessStartInfo startInfo = new ProcessStartInfo(
"cmd.exe",
"/c start /wait msiexec.exe /i " + msiString);
startInfo.WorkingDirectory = "bin";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
Process process = new Process
{
StartInfo = startInfo,
EnableRaisingEvents = true
};
process.Exited += new EventHandler(process_Exited);
process.Start();
我認爲你可以做一些非常相似打電話給你的鬼,而不是安裝一個MSI的。如果您在Ghost安裝程序之前運行此.NET可執行文件,則可以調用Ghost安裝程序進程,然後退出「CustomInstallerExecutable.exe」進程,而不是等待process.Exited事件觸發。此事件等待將更多地運行「安裝後」邏輯。
祝你好運,希望這是有幫助的。
- 1. 如何編寫Spring/JavaEE/Web應用程序安裝程序?
- 2. 如何反向設計應用程序的協議?
- 3. 如何使用IBM Spark安裝程序設置安裝路徑?
- 4. 使用Windows安裝程序向GAC安裝程序集
- 5. 如何編寫MSI安裝程序以寫入註冊表?
- 6. 使用安裝程序和部署安裝程序類卸載c#編寫的應用程序
- 7. 如何爲.NET Windows應用程序編寫安裝程序(需要安裝Access驅動程序)
- 8. 如何安裝在iOS中使用Flutter編寫的應用程序?
- 9. InstallLocation不是使用標準安裝程序編寫的?
- 10. 使用msi安裝程序向本地文件寫入權限
- 11. 如何在Python中編寫Windows SDK的安裝程序?
- 12. 如何編寫一個檢查openGL支持的安裝程序?
- 13. 如何使用Visual Studio安裝項目編寫應用程序路徑
- 14. 爲WiX安裝程序設計GUI:編輯不是用戶可編輯的
- 15. 如何反彙編用C編寫的目標程序?
- 16. 如何設置默認的應用程序安裝程序?
- 17. 如何編寫安裝程序以及數據庫文件?
- 18. 如何爲vs.net安裝程序編寫腳本?
- 19. 反應機Android安裝應用程序
- 20. 反向工程安裝人員
- 21. 數據庫反向工程安裝
- 22. 觀察MSI安裝程序如何安裝應用程序
- 23. 對於使用Install4j構建的安裝程序,如何在安裝程序執行時向版本追加值?
- 24. 如何在使用.NET的安裝項目安裝主應用程序之前安裝其他設置?
- 25. 如何編寫程序以通過Android設備安裝和卸載應用程序?
- 26. 如何使用WiX安裝程序安裝WCF服務?
- 27. 如何使用Inno安裝程序安裝SQL Server 2008 Express?
- 28. 如何使用Visual Studio安裝程序安裝預requsite軟件?
- 29. 如何使用Inno Setup安裝程序升級MSI安裝?
- 30. 爲Linux應用程序編寫通用安裝程序的最佳方法?