0

これを使用して、アプリケーションの構成ファイルの場所を取得しています。

string path = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;

しかし、実際に使用されているファイルへのパスはわかりません。

私の問題は、アプリケーションを Windows タスク スケジューラから実行できるようにする必要があり、パラメーターを取得する必要があることです。私が行ってきた方法は、スケジューラでタスクを作成するときに、[参照] をクリックしてappref-msアイコンを見つけることです。AppData\Local\Apps\2.0\...次に、スケジューラは、ファイルへのパスを入力するテキスト ボックスに、(アイコンへのパスを保持するだけでなく)下の奇妙な場所へのパスを入力します。.exeこのようにして、引数を追加することもでき、ファイルへのパスを使用したり、アイコンへのパスを入力したりするなど、私が試した他のこととは異なり、すべてが正常に機能します...

アプリケーションがタスク スケジューラから起動されると、アイコンで起動されたときとは異なる構成ファイルが使用されます。タスク スケジューラから実行した後、(常にアプリケーション内から)設定Sを値に変更するとします。T次に、アイコンから実行するときに設定を変更SIます。次にタスク スケジューラからアプリケーションを実行すると、設定Sは にTなり、次にアイコンから実行すると、設定Sは になりますI。また、S上記のコードが私に与えるパスでファイル内に設定することは、単なるデフォルト値です(そうではありませんTor I)。

アプリケーションの実行方法に関係なく、設定を同じにする必要があるため、これは大きな問題です。自分のファイルのデフォルト設定ファイルを自分で決めた場所に置き換えることを検討しています。これは私の唯一の選択ですか?アイコンから実行したときと同じ構成ファイルを使用する引数を渡すことができるように、タスク スケジューラからアプリケーションを実行する他の方法はありますか? アプリケーションが常に同じ構成ファイルを使用するように強制するコードはどうでしょうか?

4

2 に答える 2

1

設定を誰もが見つけられる場所に移動できます。ClickOnce の更新によってユーザーの保存済み設定が消去される可能性があるため、保存されているものであれば、とにかくこれを実行する必要があります。詳細については、この記事をご覧ください。

于 2013-02-28T22:21:22.473 に答える
0

アプリケーションのインストールパスを取得できることは知っています

INSTALLED_PATH = Application.StartupPath ;

1 つのアプローチとして、アプリケーションの最初の起動は、各 ClicOnce の展開後、アイコンから行うことができます。その後、アプリケーションが INSTALLED_PATH を固定テキスト ファイルに保存すると、タスクはそこからパスを取得できます。それは理にかなっていますか?

于 2013-02-28T20:52:00.690 に答える