我寫了一個C#Windows服務來處理我們的應用程序的任務調度。我試圖將「業務規則」程序集移動到日程安排應用程序的bin子目錄中,以便我們更容易地執行更新(停止服務,刪除bin文件夾中的所有文件,替換新文件,啓動服務)。C#Windows服務似乎不喜歡privatePath
我加
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin;"/>
</assemblyBinding>
</runtime>
到該服務的應用程序配置,如果該服務運行作爲控制檯應用程序,它工作正常。問題是服務作爲Windows服務運行時不起作用。看來,當Windows運行服務的應用程序配置文件被正確讀取,然後執行該服務,就好像它在c:\ windows \ system32中,而不是實際的EXE位置,並且膠粘了作品。
我們有很多程序集,所以我真的不想使用GAC或<codeBase>
。當它作爲服務運行時,是否有可能讓EXE將其基目錄更改回它應該在的位置?
如果您將DLL放在與EXE相同的文件夾中,它會工作嗎?那麼代碼庫是好的。我沒有看到''元素,是嗎?使用fuslogvw.exe解決解決問題。 –
2010-04-23 18:27:46
是的,當EXE作爲服務運行並且程序集與EXE位於同一文件夾時,一切正常。是的,配置文件具有<配置>(實際配置更長,這就是爲什麼我沒有發佈整個事情)。我會給fuslogvw.exe一個鏡頭。 – c17r 2010-04-24 16:17:02