1. COM Exception on Write action (Library not registered)
Exception detail:
System.InvalidCastException: Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Excel._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000208D5-0000-0000-C000-000000000046}' failed due to the following error: Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)).
at System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc, IntPtr pCPCMD, IntPtr& ppTarget, Boolean& pfNeedsRelease)
at Microsoft.Office.Interop.Excel._Application.get_ActiveSheet()
at SDM_ExcelClient.Core.Write.GetCurrentWorksheet()
at SDM_ExcelClient.Core.Write.WriteOnline()
at SDM_ExcelClient.Core.Write.PerformWriteHandlingExceptions(Action action)
This can happen downgrading Excel from 2013 to 2010 on the host machine. The issue is related to a system registry inconsistency created by the downgrade.
To solve the issue, on the system registry (command regedit):
- Open registry key located in:
- HKEY_CLASSES_ROOT\TypeLib\{000208D5-0000-0000-C000-000000000046}
- HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}
- HKEY_CLASSES_ROOT\TypeLib\{000C03A7-0000-0000-C000-000000000046}
- For each key, check if is present more then one version (1.7 is related to Excel 2010, 1.8 is related to Excel 2013)
- If the key related to Excel 2013 (1.8) has no content, delete it.
2. Column added to form lowest table, using check physical layer, doesn't appear.
- Make sure the new column is visibile in the form
- Close all running Excel applications
- Open a new Excel instance
- Read the form
- Make sure there is no template associated to the form, that could overwrite the column. Please see Overview of XML in Excel