我有一个DLL文件,其中包含一个ActiveX控件,我需要通过代码以编程方式注册它。这是我用来注册该DLL文件的代码,但它在调用Start方法时不断给我“系统找不到指定的文件”,而且我不知道为什么找不到regsvrce.exe,我应该更改当前目录什么的,请帮忙。
public static void registerDLL(string dllPath)
{
try
{
//'/s' : indicates regsvr32.exe to run silently.
string fileinfo = "\"" + dllPath + "\"";
Process reg = new Process();
reg.StartInfo.FileName = "regsvrce.exe";
reg.StartInfo.Arguments = fileinfo;
reg.StartInfo.UseShellExecute = false;
reg.Start();
reg.WaitForExit();
reg.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
答案 0 :(得分:1)
Windows CE无法理解或支持相对路径。首先,你必须确保平台上存在regsvrce.exe
(这不是一个给定的,事实上,不存在它是非常常见的)你必须完全符合路径它:
reg.StartInfo.FileName = @"\Windows\regsvrce.exe";
如果它不存在(或者即使它存在),您可以轻松地执行regsvrce.exe
所做的相同操作,即通过简单的P / Invoking DllRegisterServer
来调用LoadLibrary
直接调用该方法。