1

コンソール アプリケーションに、System.IO.Path.GetFullPath("ApplicationSubDirectory")アプリケーション ディレクトリ ファイル システム パスを取得する行を記述しました。

このアプリケーションをビルドし、システムに exe をインストールしました。exeがc://ProgramFiles/AppFolder/ディレクトリにインストールされました。exeを実行すると、のような有効なパスが得られc://ProgramFiles/AppFolder/ApplicationSubDirectoryました。

しかし、このexeをWindowsスケジューラで毎日実行するようにスケジュールしたとき。それから私は間違った道を歩んでいます。これにより、Windowsスケジューラがインストールされているディレクトリのパスが返されますc://Windows/System32/ApplicationSubDirectory. これは間違ったパスです。

exeをスケジュールした後に有効なパスを取得する方法を教えてください。

どうもありがとう。

4

2 に答える 2

4

これは、コンソール アプリケーションがタスク スケジューラによって開始されるためです。実際のパスを取得するには、次のコードをアプリケーションに追加します

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
于 2013-04-19T10:33:07.797 に答える
2

スケジューラは、現在のディレクトリを上記のパスに設定します。 System.IO.Path.GetFullPath("ApplicationSubDirectory")現在のディレクトリを使用します。

AppDomain.CurrentDomain.BaseDirectory代わりに試すことができます。

于 2013-04-19T10:32:51.330 に答える