私にはソースコードがないインストーラがあります。私はこのインストーラを "ラップ"するか、それを編集していくつかのファイルを追加する必要があります。これを行う最善の方法は何ですか?タイトルに記載されているように、インストーラはghost installerで書かれています。ghost-installerで作成されたインストーラをリバースエンジニアリングするにはどうすればよいですか?
答えて
MSIではないので、Orca to edit the installer itselfは使用できません。私はMSIインストーラの前にcustom install actionsと書いています。
あなたのGhostインストーラにはコントロールがありませんので、インストーラを補足するためのカスタム実行可能ファイルを作成します。これはインストーラの前でも後でも実行できます。これにより、お客様に配布するファイルがいくつか作成されますが、その全体をzipアーカイブとして配布することができます。
<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>
この意志:あなたは同じようにVisual Studioが前提条件がインストールされていることを確認しない管理対象外のブートストラップを作成したい場合は、すべての
まず、次のようなスクリプトでのMSBuildを通してそれを行うことができますインストーラのブートストラップのための事実上のファイル名である "setup.exe"を生成します。実際に、ユーザが誤ってブートストラップをスキップしてインストーラに直接行かないようにしたい場合は、Ghostインストーラをzipアーカイブのルートから「bin」フォルダなどに隠すことができます。そうすれば、その唯一の直感的なオプションは "setup.exe"です。お客様のために非常に明確にする必要がある場合は、「README.txt」も含めてください。
このブートストラップもまた、 "CustomInstallerExecutable.exe"が管理対象言語ではなく.NETで記述できるように、クライアントに.NET 2.0 Frameworkが必須であることを確認します。実際、このMSBuildスクリプトは、(ComponentsLocation属性の相対的な値のため)新しく作成したブートストラップの横に.NET 2.0 Frameworkインストーラを表示します。 Ghostインストーラダウンロードのオリジナルダウンロードサイズを顧客に拡大することを心配している場合は、代わりに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を呼び出すことが非常によく似た何かをすることができると思います。この.NET実行可能ファイルをGhostインストーラよりも前に実行している場合は、Ghostインストーラプロセスを起動して「CustomInstallerExecutable.exe」プロセスを終了し、process.Exitedイベントが発生するまで待つことができます。このイベント待機は、「インストール後」ロジックを実行するためにより多くなります。
幸運にもこれは役に立ちます。
- 1. 1人のインストーラでJava EE Webアプリケーションのインストーラを作成するにはどうすればよいですか?
- 2. 動的に作成された 'el'でバックボーンビューを作成するにはどうすればよいですか?
- 3. アプリケーションのプロトコルをリバースエンジニアリングするにはどうすればよいですか?
- 4. DirectShowグラフをリバースエンジニアリングするにはどうすればよいですか?
- 5. 動的に作成されたマテリアライズトーストツールチップのリスナーを作成するにはどうすればよいですか?
- 6. シングルイメージファイルをインストールする簡単なインストーラを作成するにはどうすればよいですか?
- 7. Javaアプリケーションの.exe版をインストールする.exeインストーラを作成するにはどうすればよいですか?
- 8. MSIインストーラをプログラムで作成するにはどうすればよいですか?
- 9. 計算されたフィルタリングされたプロパティを作成するにはどうすればよいですか?
- 10. インストーラを作成せずにC#Windowsサービスをインストールするにはどうすればよいですか?
- 11. インストーラでウェルカムページイメージを変更するにはどうすればよいですか?
- 12. 新しいリリースのインストーラを作成するにはどうすればよいですか?
- 13. あなたのpythonプログラムのインストーラを作成するにはどうすればいいですか?
- 14. すでに作成されたリストに値を追加するにはどうすればよいですか?
- 15. Visual Studio 2010 C#プロジェクトのインストーラを作成するにはどうすればよいですか?
- 16. JavaアプリケーションのMacインストーラを作成するにはどうすればよいですか?
- 17. Windows 10 HWAバンドルのインストーラを作成するにはどうすればよいですか?
- 18. ElasticsearchでNESTで作成されたクエリでスクリプトフィールドにアクセスするにはどうすればよいですか?
- 19. Grails 3でセッションが作成されないようにするにはどうすればよいですか?
- 20. スクラッチで作成されたリストからアイテムを選択するにはどうすればよいですか?
- 21. libharuで作成されたPDFからバイナリデータを取得するにはどうすればよいですか?
- 22. データフレームからネストされた配列をスカラーで作成するにはどうすればよいですか?
- 23. Javaサーブレットでasp.netで作成されたCookieを取得するにはどうすればよいですか?
- 24. PowerShellでリソースマネージャーで作成されたAzureブロブを削除するにはどうすればよいですか?
- 25. jQueryで作成されたフォームフィールドでオートコンプリートを使用するにはどうすればよいですか?
- 26. NginxでSSLで保護されたリバースプロキシを作成するにはどうすればよいですか?
- 27. .xibファイルでプログラムで作成されたアイテムをプレビューするにはどうすればよいですか?
- 28. アクティビティ/フラグメントからサービスで作成されたMediaPlayerにアクセスするにはどうすればよいですか?
- 29. Rでは、データフレームの変換されたサブセットを作成するにはどうすればよいですか?
- 30. インストーラをリバースエンジニアリングする