下面,我创建的方法用于注册。但是我得到了:"regasm :警告ra0000 :没有类型被取消注册“。
private static void ExecuteRegAsm(string comObjectPath, string typeLibraryName, string regAsmPathToExecute, string regAsmParameter = null)
{
var startInfo = new ProcessStartInfo
{
CreateNoWindow = false,
UseShellExecute = false,
FileName = regAsmPathToExecute,
WindowStyle = ProcessWindowStyle.Hidden
};
switch (regAsmParameter)
{
case null:
startInfo.Arguments = comObjectPath + " /tlb:" + typeLibraryName + " /Codebase";
break;
case "/u":
case "-u":
startInfo.Arguments = "/u " + comObjectPath;
break;
}
using (var exeProcess = Process.Start(startInfo))
{
if (exeProcess != null) exeProcess.WaitForExit();
}
}如何解决这个问题?
发布于 2014-02-13 06:39:06
通过将/tlb:属性和对象的类型库名称作为值添加到代码中,解决了这个问题。以下方法正在发挥作用:
private static void ExecuteRegAsm(string comObjectPath, string typeLibraryName, string regAsmPathToExecute, string regAsmParameter = null)
{
var startInfo = new ProcessStartInfo
{
CreateNoWindow = false,
UseShellExecute = false,
FileName = regAsmPathToExecute,
WindowStyle = ProcessWindowStyle.Hidden
};
switch (regAsmParameter)
{
case null:
startInfo.Arguments = comObjectPath + " /tlb:" + typeLibraryName + " /Codebase";
break;
case "/u":
case "-u":
startInfo.Arguments = comObjectPath + " /tlb:" + typeLibraryName + " /u";
break;
}
using (var exeProcess = Process.Start(startInfo))
{
if (exeProcess != null)
{
exeProcess.WaitForExit();
}
}
}https://stackoverflow.com/questions/21723369
复制相似问题