Ho creato un servizio di Windows che viene installato in una directory c:\Program Files\My Service
. Insieme all'eseguibile, ho un file XML che viene installato nella stessa directory. Questo file XML viene utilizzato dal servizio per ottenere informazioni definite dall'utente.Come leggere un file di testo da un servizio di Windows?
Nel codice del servizio che ho letto il file come se fosse locale per l'eseguibile .. Esempio:
DataSet ds = new DataSet();
ds.ReadXml("Foo.xml");
Tuttavia, quando si esegue il servizio, il servizio genera un'eccezione dicendo:
Impossibile trovare il file 'C: \ Windows \ system32 \ foo.xml'
Poiché la vita eseguibili in c:\Program Files\My Service
mi aspettavo il Ser di Windows vice per cercare il file XML in c:\Program Files\My Service\Foo.xml
. Ovviamente, non è così.
Come posso forzare il servizio a visualizzare (relativamente) il file Foo.xml nella stessa posizione in cui risiede l'eseguibile del servizio?
possibile duplicato di [Come faccio a trovare la directory di installazione di un servizio di Windows, utilizzando C#?] (Http://stackoverflow.com/questions/491735/how-do-i-find-the-install-directory-of-a-windows-service-using-c) –
Solo una considerazione, * non è necessario * memorizzare le impostazioni configurabili dell'applicazione in la directory dei file di programma come accesso per modificare questo percorso richiede privilegi. Prendi invece in considerazione l'uso di 'ApplicationData' /' LocalApplicationData'. –
@QuintinRobinson - Grazie per il promemoria! +1 – Jed