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文件。

相关问题