私にはソースコードがないインストーラがあります。私はこのインストーラを "ラップ"するか、それを編集していくつかのファイルを追加する必要があります。これを行う最善の方法は何ですか?タイトルに記載されているように、インストーラは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. DirectShowグラフをリバースエンジニアリングするにはどうすればよいですか?
- 4. アプリケーションのプロトコルをリバースエンジニアリングするにはどうすればよいですか?
- 5. 計算されたフィルタリングされたプロパティを作成するにはどうすればよいですか?
- 6. シングルイメージファイルをインストールする簡単なインストーラを作成するにはどうすればよいですか?
- 7. MSIインストーラをプログラムで作成するにはどうすればよいですか?
- 8. インストーラを作成せずにC#Windowsサービスをインストールするにはどうすればよいですか?
- 9. インストーラでウェルカムページイメージを変更するにはどうすればよいですか?
- 10. あなたのpythonプログラムのインストーラを作成するにはどうすればいいですか?
- 11. Visual Studio 2010 C#プロジェクトのインストーラを作成するにはどうすればよいですか?
- 12. Windows 10 HWAバンドルのインストーラを作成するにはどうすればよいですか?
- 13. JavaアプリケーションのMacインストーラを作成するにはどうすればよいですか?
- 14. スクラッチで作成されたリストからアイテムを選択するにはどうすればよいですか?
- 15. Javaサーブレットでasp.netで作成されたCookieを取得するにはどうすればよいですか?
- 16. JQueryでserializeArrayで作成された値にアクセスするにはどうすればよいですか?
- 17. Interface Builderで作成されたNSTableViewにプログラムでアクセスするにはどうすればよいですか?
- 18. 生成された地形図のカラーマップを作成するにはどうすればよいですか?
- 19. ウェブサービスアプリの作成にはどうすればよいですか?
- 20. WFでカスタマイズされた受信アクティビティを作成するにはどうすればよいですか?
- 21. フィールドセットなしでformtasticネストされた入力を作成するにはどうすればよいですか?
- 22. rails 3.1でスコープ/ネストされたリソースのnamed_route_pathを作成するにはどうすればよいですか?
- 23. スカラーでカレー化された無名関数を作成するにはどうすればよいですか?
- 24. SQLサーバーでパラメータ化されたXPathクエリを作成するにはどうすればよいですか?
- 25. Djangoでネストされた再グループを作成するにはどうすればよいですか?
- 26. Liftフレームワークでカスタマイズされたメニューを作成するにはどうすればよいですか?
- 27. Ruby on Rails:httpパスワードで保護されたサブドメインを作成するにはどうすればよいですか?
- 28. Rustでパラメータ化されたテストを作成するにはどうすればよいですか?
- 29. type()でバインドされたメソッドを作成するにはどうすればよいですか?
- 30. Ruby on Rails:has_one関係でネストされたフォームを作成するにはどうすればよいですか?