質問

iはwix 3.0.iを使用しています画像。そして、単純なファイル要素を使用すると、ファイルはmsiパッケージにバインドされます。どうすればいいですか

すぐに返信

ありがとう サミール

役に立ちましたか?

解決

どうやら、ユーザーによって選択された多数の画像ファイルを含むスクリーンセーバーインストーラーを生成できるアプリケーションを作成する必要があります—スクリーンセーバーインストーラーを作成するための特殊なInstallShieldアプリケーションの一種。

最初にテンプレートMSIファイルを作成します(wix     または他の何か)     作品。ユーザーが後で選択するファイルがわからないので、IDが「UserSelectedFiles」のプレースホルダーコンポーネントを追加します。これを配布する     アプリケーションのテンプレートMSIファイル。

次に、ユーザーが     新しいインストーラー、コピーして開始     テンプレート。コピーしたmsiを編集して、ユーザーが選択したファイルもインストールするようにします。 .NETクラスでこれを行うことができます     &quot; deploymentで見つけることができます     ツールの基礎&quot; API。これは、wixに付属するアセンブリのセットです。を見てみましょう     <コード> C:\ program files \ Windows Installer     XML v3 \ sdk 。

MSIのファイルテーブルエントリをカウントする次の例のように、いくつかの簡単なものにのみDTF APIを使用しました。

var database = new Database(@"\path\to\some\file.msi");
var list = database.ExecuteQuery("SELECT FileName FROM File");
Console.WriteLine(list.Count);

あなたのケースはもう少し複雑になります。おそらく

する必要があります
  • 以下を含むCABアーカイブを生成します あなたがクラスを持つ画像ファイル で見つける Microsoft.Deployment.Compression.Cab 名前空間。
  • CABアーカイブをmsiにマージします Database.Merge
  • ファイルテーブルに新しいエントリを追加する MSIの
  • 製品コードを生成された各MSIに固有のものに変更します
  • etcetera

MSIファイルの内容とその編集方法を理解するには、まず orca および msidb ツール。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top