2013-02-06 7 views
6

私のアプリケーションは異なるデータベースに接続します。接続文字列はユーザ​​ー設定に保存されます。実行時にデータが変更されるため、アプリケーションスコープを使用できません。"実行..."を使用すると、別のuser.configが作成されます

ユーザーがアプリケーションを正常に起動しても、問題はありません。しかし、彼は異なるuser.configを含む作成されUser\AppData\Local\MyApplicationで、その後Startメニュー別のフォルダから"Run..."コマンドを使用している場合。

この動作を停止または回避する方法はありますか?

+2

これは正常な動作です。あなたは別のユーザーとして実行しています。そのユーザーは自分のユーザー設定を取得します(名前の中にヒントがあります) –

+0

タスクマネージャでプロセスを表示すると、起動方法に関係なく同じ所有者が表示されます。私は_runas_を使用せず、_user.config_は同じユーザーのAppDataフォルダを作成します。別のIDを使用するだけで、これは別のユーザーになる可能性があります。 –

+0

この動作を停止することはできません。唯一の解決策は、アプリケーションが開始されたときに欠落している構成データを生成することです(欠落している場合)。他の方法はハックであり、あらゆる場合に動作することは保証されていません。 –

答えて

1

この現象は回避できません。

Windowsは、他のプログラムによって起動されたプログラムを、そのユーザーが実行しているプログラムと同じものとして識別していないようです。

この問題を解決するには、ConfigurationManagerによる設定を避け、コメントに指摘されているデータを保存するための独自のファイルを作成する必要があります。

関連する問題