0

私が開発しているアプリケーションの 1 つは、さまざまなクライアントで使用されています。アプリケーションはデータベースに接続する必要があるため、app.config に接続文字列が定義されています。ただし、各クライアントには異なる接続文字列が必要です。

クライアントは、製品のインストール中にデータベース情報を提供する必要があります。新しいリリースごとに、この情報を提供する必要があります。

私が実際に望んでいるのは、接続文字列などの一部の設定が、新しいインストールの影響を受けない場所に保存されることです。この問題を処理する最善の方法は何ですか?

4

2 に答える 2

0

接続文字列をレジストリに保存することをお勧めします。値を検索してアップグレードを行うときに、値を取得してプロパティとして保存できます。値が見つからない場合は、クリーン インストールとして処理し、値を要求するか、コマンド ライン プロパティとして取得できます。

RegistrySearchを使用して検索を行うことができます。例を次に示します。

<Property Id="DATABASECONNECTIONSTRING">
  <RegistrySearch Id="DbConnectionString" Root="HKLM" Key="MyDBConnectionStringLocation" Name="ConnectionString" Type="raw" />
</Property>

値を保存するには、RegsitryValue要素を使用します。

<Component Id="PersistentProperty" KeyPath="yes">
  <RegistryValue Id="DbConnectionString" Root="HKLM" Key="MyDBConnectionStringLocation" Value="[DATABASECONNECTIONSTRING]" Name="DbConnectionString" Type="string" />
</Component>
于 2012-12-10T09:54:08.297 に答える
0

クライアントごとに変換 (http://wix.tramontana.co.hu/tutorial/transforms) を作成することを検討しましたか? 接続文字列をプロパティに固定し、変換を使用してクライアントで更新します。インストーラーを更新してインストール中に入力したものを使用するよりもはるかに迅速/簡単になります (エラーが発生しにくくなる可能性があります)。実行中のように簡単:

インストーラー.msi 変換 = クライアント.mst

欠点は、インストーラーを実行するときに変換を使用することを確認する必要があることです。これで、これらのものをパッケージ化する方法や起動する方法などを確認できます。それが古いトム、ディック、またはハリーに与えるだけのものである場合、これはそうではない可能性があります最善の解決策です。それをインストールするのがあなたまたはあなたが知っている人なら、それは簡単な解決策かもしれません.

または、マシン上で DSN などのセットアップを使用して、一貫性を保つこともできます。

それ以外の場合は、インストールを変更/編集する必要があります。その場合はhttp://wix.tramontana.co.hu/tutorial/user-interface-revisitedをご覧ください。

于 2012-12-07T18:52:14.050 に答える