2011-12-20 12 views
0

私の状況を説明しましょう。 Webアプリケーション(C#でASP NET用に書かれている)を使ってWindowsインストールパッケージ(.msiタイプ)を配布する必要がありますが、ダウンロードする前にその.msiパッケージをWebアプリケーションから動的に変更する必要があります。つまり、msiパッケージはインストール時に特定の値をWindowsレジストリに追加するので、私はそれらの値をWebアプリケーションから設定する必要があります。ASP.NET Webアプリケーションから.msiパッケージを調整する

このような可能性があります。もしそうなら、どうすればよいですか?

+0

プロジェクトプロパティウィンドウでビルドイベントを設定することができます。実際にパラメータを渡すように設定しようとしていませんが、可能であると確信しています。私は間違っている可能性があります – MethodMan

答えて

1

これはかなり難しいですね。私は飛行機でMSIを更新しようとしたことはありませんが、私たちが似たような状況で行うことは、MSIの隣にある圧縮されていないファイル(変更ファイルなど)を変更して更新し、それは要求者に配信される。

これは遅すぎることはありませんが、1日に10,000回のダウンロードで使用するつもりはありません。

1

私はここからヒントを得ていますが、リソースファイルを使ってセットアッププロジェクトをまとめるのはどうですか? MSIプロジェクトにレジストリ値のリソースファイルを読み込ませます。/insertをリソースファイルに書き込んで、Processクラスを使用してMSBuildを呼び出して、必要に応じてMSIを構築するものを作成します。

私はこれが大規模ではないだろうと確信していますが、あなたのための解決策かもしれませんか?

1

アプリケーションは.msiファイルを直接編集することができます。 WIX(http://wix.codeplex.com)に同梱されているDTFライブラリ。 プロパティを使用し、プロパティテーブルのデフォルト値を変更するか、レジストリテーブルに新しい行を追加するだけで、既存のレジストリ項目をパラメータ化できます。

とにかく、Windowsインストーラとインストーラデータベース(.msiファイル)に関する知識が必要です。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa368259(v=VS.85).aspx

関連する問題