.NET RTD/COM Problems on one user's machine

  • Thread starter Thread starter Shalom Shachne
  • Start date Start date
S

Shalom Shachne

We built a .NET COM/Excel RTD Server (.NET Assembly) which has been in use for many years, on a variety of machines (i.e. we know it works, and our standard method for installing it works). We have a user who installed this RTD component on a different machine, and is having problems getting it to function smoothly. I believe the problem relates to the Interop.Microsoft.Office.Interop.Excel.dll somehow being either incompatible with this machine, or else improperly registered. Here are specific details:

- Although RTD links are working to some extent, we see this error frequently logged by our application:

RTDServer.NotifyExcel(): Error notifying Excel, ex=System.InvalidCastException: Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Excel.IRTDUpdateEvent'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{A43788C1-D91B-11D3-8F39-00C04F3651B8}' failed due to the followingerror: Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)). at Microsoft.Office.Interop.Excel.IRTDUpdateEvent.UpdateNotify() at EZomsRTDServer.RTDServer.NotifyExcel()

- When I was troubleshooting on the user's machine, I checked to see whether our component was registered in COM properly. We run this command to register our component with COM:

C:\EZomsRTD\regasm EZomsRTDServer.dll /codebase "c:\EZomsRTD\EZomsRTDServer..dll"
C:\EZomsRTD\regasm EZomsRTDServer.dll /tlb

Running these commands on user's machine produces this regasm error:

Type library exporter warning: Referenced type is defined in managed component, which is imported from a type library that could not be loaded becauseit was not registered (type: 'Microsoft.Office.Interop.Excel.IRtdServer'; component: 'C:\EZomsRTD\Interop.Microsoft.Office.Interop.Excel.dll'). Assembly exported to 'C:\EZomsRTD\EZomsRTDServer.tlb', and the type library wasregistered successfully

(The file: Interop.Microsoft.Office.Interop.Excel.dll is in the same folder as our component.) Is this possibly caused by there being another version of the Interop.Excel assembly registered in this machine's GAC? Any other possible areas to investigate?

The user has Excel 2003, which is the same as on his previous machine.

Thanks in advance for any help.
 
Back
Top