把.net类转成COM类型出的问题
用以下两个命令编译都说TestEmailer.dll格式不正确。 
 tlbimp   TestEmailer.dll   /out:TestEmailerCOM.tlb 
 tlbexp   TestEmailer.dll   /out:TestEmailerCOM.tlb 
 具体异常如下: 
 RegAsm   :   error   RA0000   :   保存导出的类型库时出错:I/O   错误。   (异常来自   HRESULT:0x80 
 028CA2   (TYPE_E_IOERROR)) 
 现把整类内容考来,求高手指点错误。 
 using   System; 
 using   System.Collections; 
 using   System.IO; 
 using   System.Collections.Generic; 
 using   System.Text; 
 using   System.Net; 
 using   System.Net.Mail; 
 using   System.Net.Mime; 
 using   System.Web; 
 using   System.Security.Cryptography; 
 using   System.Threading; 
 using   System.Security; 
 using   System.Runtime.InteropServices;   
 namespace   TestEmailer 
 { 
 [Guid( "0bb13346-7e9d-4aba-9ff2-862e0105489a ")]    
       public   interface   ICSharp          
       {          
       [DispId(1)]    
                      void   sendmailMethod();          
       }          
 [Guid( "ba0a3019-f0d8-4406-8116-f80d5515c686 "),ProgId( "TestEmailer.MailM2 "),ClassInterface(ClassInterfaceType.None)]    
             class   MailM2 
             { 
                         public   void   sendmailMethod() 
                         { 
 …………………… 
                         } 
             } 
    } 
------解决方案--------------------给你修改一下试试:   
 1、程序修改: 
 namespace TestEmailer 
 { 
   [interfaceType(ComInterfaceType.InterfaceIsDual)] 
   public interface ICSharp    
   {    
       void sendmailMethod();    
   }    
     [ClassInterface(ClassInterfaceType.AutoDual)]  
     class MailM2:ICSharp    
     { 
         public void sendmailMethod() 
         { 
 …………………… 
         } 
     } 
  }   
 2、创建类型库:   
 tlbexp TestEmailer.dll   
 执行后将生成TestEmailer.tlb,用COM Object Viewer看看。