Zrobiłem usługę Windows, która zostanie zainstalowana w katalogu c:\Program Files\My Service
. Wraz z plikiem wykonywalnym mam plik XML, który zostanie zainstalowany w tym samym katalogu. Ten plik XML jest używany przez usługę do uzyskiwania informacji zdefiniowanych przez użytkownika.Jak odczytać plik tekstowy z usługi Windows?
W kodzie usługi czytałem plik tak, jakby to były lokalne do wykonywalnego .. przykład:
DataSet ds = new DataSet();
ds.ReadXml("Foo.xml");
Jednak, kiedy uruchomić usługę, usługa zgłasza wyjątek mówiąc:
nie można odnaleźć pliku 'C: \ Windows \ system32 \ Foo.xml'
Od wykonywalnych mieszka w c:\Program Files\My Service
spodziewałem Windows Ser vice szukać pliku XML w c:\Program Files\My Service\Foo.xml
. Oczywiście tak nie jest.
Jak zmusić usługę do wyświetlenia (względnie) pliku Foo.xml w tym samym miejscu, w którym znajduje się plik wykonywalny usługi?
możliwy duplikat [Jak mogę znaleźć katalogu instalacyjnego usługa systemu Windows, przy użyciu C#?] (Http://stackoverflow.com/questions/491735/how-do-i-find-the-install-directory-of-a-windows-service-using-c) –
Tylko rozważanie * nie powinieneś * przechowywać konfigurowalnych ustawień aplikacji w katalog plików programu jako dostęp do modyfikacji tej ścieżki wymaga uprawnień. Zamiast tego rozważ użycie 'ApplicationData' /' LocalApplicationData'. –
@QuintinRobinson - Dzięki za przypomnienie! +1 – Jed