0

如何使C#win服務應用程序引用主機上的程序集

我正在C#中構建代理服務以與安裝在主機上的SCVMM進行通信。爲此,代理引用以下程序集:Microsoft.SystemCenter.VirtualMachineManager.dll和Erros.dll等。

在Visual Studio開發環境中,我添加了對代理應用程序的引用。當我構建調試/發佈模式時,基本上我不會將上述程序集複製到調試/發佈目錄,因爲代理將分發給客戶。基本上,代理應用程序與SCVMM進行通信,在安裝代理應用程序之前,必須先安裝SCVMM。

有一兩件事,我不明白的是如何使代理服務指的是在<SCVMM root>/bin文件夾中已經存在的Microsoft.SystemCenter.VirtualMachineManager.dll等文件。

+0

這些程序集安裝在計算機上時是否添加到GAC中? – CodingGorilla

+0

不,安裝SCVMM不會將程序集註冊到GAC。 – Bala

回答

1

參考在Visual Studio中正常調用任何方法在DLL調用之前:

AppDomain.CurrentDomain.AppendPrivatePath(scvmmroot + "/bin"); 

你也能做到這一點的yourapp.exe.config文件(見Set Custom Path to Referenced DLL's?),但作爲你的路徑是不相可執行文件將意味着在您的安裝程序中生成.config文件。

相關問題