2016-10-13 4 views
0

特定のボタンをクリックしてSystem.Diagnostic.Processを使用してWIX MSIインストーラを呼び出すアプリケーションがあります。プロセスから呼び出されたMSIインストーラの出力方法

コマンドラインを使用してMSIインストーラにパラメータを渡しています。

Wix MSIインストーラで利用できるUIDialogを使用して、同じパラメータの値をエンドユーザが更新できるようになりました。

私のコーリングコードから、インストーラが完成したら、どうすればその値を入手できますか?

+0

また、アプリケーションのUIから事前に入力してプロパティとしてMSIに渡すこともできます。 'msiexec - ? 'を参照してください –

+0

ありがとうございます。しかし、どのように私はパラメータの更新された値を呼び出しコードに戻すのですか? –

+0

アイデアは、起動アプリケーションでMSIにプロパティ値を渡すように要求することです。静かで隠れたモードで実行します。しかし、データにはパスワードが含まれていると言われているので、それは普通のテキストで記録されるので、それは良い考えではありません。 –

答えて

2

インストール時にレジストリに書き込んで、呼び出しプロセスのレジストリの場所から読み取ります。この方法では、そのインストーラのアップグレードまたはアンインストールを実行するときに使用される値をロードすることもできます。 Remember me blog投稿hereを参照してください。これは、値をレジストリに保存してインストーラで読む方法を示しています。

+0

ありがとう@Brian Sutherland、しかし私にとっては、このパラメータはパスワードのような機密情報を含むデータベース接続文字列なので、ここでレジストリを使用することはできません。他の選択肢をお勧めしますか? –

+0

レジストリに書き込む前にエンコードする必要があります。エンコードされた値をレジストリに書き込み、接続文字列が必要なときにそれをデコードします。 DB接続情報文字列については、私たちの製品で行っています。エンコードされたバージョンをレジストリに書き込んで、データベースに接続する必要があるときにそれを読み取り、デコードします。 –

+0

目的は、ユーザーのアカウントで実行される他のプログラムから一部のプログラムが使用する情報を非表示にする場合は、データ保護API([DPAPI](https://msdn.microsoft.com/en-us/library/ms229741 = vs.110).aspx))を使用すると、それらをより難しくすることができます。 –

関連する問題