RegAsm注销问题 [英] RegAsm Unregister Issue

查看:262
本文介绍了RegAsm注销问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面,我创建的方法正在注册. 但是我得到: 重新加气:警告ra0000:未注销任何类型" 取消注册.

Below, the method i' ve created is working for registering. But i get: "regasm : warning ra0000 : no types were unregistered" for unregistering.

    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();
        }
    }

如何解决此问题?

推荐答案

我已经通过在代码中添加/tlb:属性和对象的类型库名称作为值来解决此问题.以下方法有效:

I' ve solved this issue by adding /tlb: attribute and the type library name of the object as value to the code. Below method is working:

    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();
            }
        }
    }

这篇关于RegAsm注销问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆