c:\Program Files\My Service
ディレクトリにインストールされるWindowsサービスを作成しました。実行可能ファイルとともに、同じディレクトリにインストールされるXMLファイルがあります。このXMLファイルは、サービスによってユーザー定義の情報を取得するために使用されます。それは実行可能ファイルへのローカルであるかのように私は、ファイルを読み込むサービスのコード..例でWindowsサービスからテキストファイルを読み取る方法は?
:
:私はサービスを実行するときにDataSet ds = new DataSet();
ds.ReadXml("Foo.xml");
がしかし、サービスが言って例外をスローします
はファイル 'Cを:\ WINDOWS \ SYSTEM32 \ Foo.xml' が見つかりませんでした。
私は、WindowsのSerを期待c:\Program Files\My Service
で実行可能な生活ので、 XMLファイルを探すにはviceをc:\Program Files\My Service\Foo.xml
にします。明らかに、そうではありません。
サービス実行可能ファイルが存在するのと同じ場所にあるFoo.xmlファイルに対してサービスを(相対的に)見えるようにするにはどうすればよいですか? Windowsサービスの作業ディレクトリとして
System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Foo.xml");
可能重複以下のようにしてくださいする必要があります/ /stackoverflow.com/questions/491735/how-do-i-find-the-install-directory-of-a-windows-service-using-c) –
あなたは設定可能なアプリケーション設定を*保存しないでください。プログラムファイルのディレクトリには、このパスを変更するためのアクセス権限が必要です。代わりに 'ApplicationData' /' LocalApplicationData'の使用を検討してください。 –
@QuintinRobinson - リマインダーをありがとう! +1 – Jed