2

状況: さまざまなサービスに (一度に 1 つずつ) 接続してさまざまな呼び出しを実行する Windows デスクトップ アプリケーションを使用しています。私のアプリケーションは、どのサービスに接続しても同じように動作します。いつでも接続する必要があるサービスは、application.config ファイルで定義されます。

サービスを切り替えるために、いくつかの Windows .bat ファイルを作成しました。それぞれのファイルは、既存の .config ファイルを新しいもの (サービス エンドポイント) に置き換えて使用します。

これらすべてのために、インストーラー (MSI、Visual Studio 2010 の "Setup Project" テンプレートを使用) を作成しました。このインストーラーは、次へのショートカットも作成します。

  1. アプリケーション自体
  2. 最初の .bat ファイル (構成ファイルに「既定の」サービス エンドポイントを設定します)
  3. 2 番目の .bat ファイル。(構成ファイルを別のものに置き換えます)

問題: ショートカットを介してこれら (アプリまたはバット ファイル) のいずれかを実行するたびに、実際にターゲットを実行する前に、インストールされたファイルを「再評価」しているように見えます。デフォルトの .config ファイルを使用している限り、これは問題ありません。それがインストールされた方法だからです。ただし、2 番目の .bat ファイルを実行し、2 番目のサービスに接続するようにアプリケーションを実行しようとしている場合、ショートカットを介してアプリケーションを起動すると、.config ファイルが元に戻り、最終的に接続することになります代わりに最初のサービス。

.bat ファイルとアプリケーション自体の両方への独自のショートカットを手動で作成でき、正常に動作します。ただし、他のファイルへの変更を台無しにすることなく、これが自動的に行われることを望みます。

どんなアイデアでも大歓迎です!前もって感謝します、
-Kjartan

4

2 に答える 2

2

展開プロジェクトには、「宣伝されたショートカット」と呼ばれるものがあります。これらを無効にする方法はいくつかあります。次のリンクを参照してください。

http://social.msdn.microsoft.com/Forums/en/vssetup/thread/b57f1d84-9b0c-4c29-b140-0555f92ffed8

于 2011-06-06T11:34:24.153 に答える
0

ありがとうジョージ。これはちょっと面倒で、デフォルトでこれを無効にする良い方法がないように思えて驚きました。完璧ではないにしても、最後に使用したソリューションを共有したいと思います。次のパラメーターを使用してコマンドプロンプトからインストーラーを実行し、「通常の」ショートカットを生成します。

Setup.exe DISABLEADVTSHORTCUTS=1

これは、ユーザーが通常のように単純なダブルクリックでアプリをインストールできないことを意味します。ただし、私たち (プログラマー) は、新しい展開を行うたびに、外部ツールを使用して生成されたインストーラーを編集する必要がないことを意味します。これは社内専用のアプリケーションであるため、許容できるトレードオフです。

ありがとう、
-Kjartan

于 2011-06-14T12:07:24.457 に答える