我有一个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);
}
}发布于 2013-11-30 19:02:45
Windows CE不理解或支持相对路径。因此,首先,您必须确保regsvrce.exe存在于平台上(并不是给定的,实际上它不存在是相当常见的),并且您必须完全限定通向它的路径:
reg.StartInfo.FileName = @"\Windows\regsvrce.exe";如果它不存在(或者即使不存在),您可以很容易地执行regsvrce.exe所做的相同的事情,即通过简单的P/调用LoadLibrary并直接调用方法来调用DllRegisterServer。
https://stackoverflow.com/questions/20299229
复制相似问题