我需要在程序里更新某目录下的一堆dll,其中有C#的,还有VB的.
现在问题是VB的dll需要unregister,register.
那我怎么用程序判断某个dll是C#的还是VB的呢?

解决方案 »

  1.   

    不知道反射能不能判断关注ing
      

  2.   

    不知道能不能用
    Assembly dll = Assembly.LoadFrom(dllPath);
    再来catch异常来判断?
      

  3.   

    h = LoadLibrary(file), 然后 GetProcAddress(h, "DllRegisterServer")如果返回的地址有效,说明是 activex dll(vb开发的)
      

  4.   

    回楼上兄弟,没看懂怎么用.我现在只有用异常来判断,但不知道有没有什么问题.
    至少在只是判断两种dll是没问题的,实验通过.但不知有无更好的办法.
    if (File.Exists(dllPath)
    {
        try
           {
     Assembly dll = Assembly.LoadFrom(dllPath);
    if (dll != null)
    txtDll.Text += " is net dll";
        }
       catch(BadImageFormatException ex)
       {
    txtDll.Text += " is VB dll";
       }
    }
      

  5.   

    那我怎么用程序判断某个dll是C#的还是VB的呢?编译成dll以后,C#的和VB的已经没有区别了!!!.Net对比原来,优势就体现在这里。
    你不需要判断
      

  6.   

    因为我要对一个程序做自动升级,其中有C#的dll和VB的dll.
    C#的dll只要简单copy就行了,但VB的要重新register,
    所以我要判断.