Я обновляю приложение C # dotnet v1.1 до 3.5 и столкнулся с этой ошибкой при запуске под 3.5 в первый раз.Это приложение, которое успешно работает в течение многих лет, и на моем рабочем столе в 1.1, поэтому я предполагаю, что что-то изменилось в API для Excel COM между 1.1 и 3.5
полное исключение:
InvalidClassCastException was unhandled
Unable to cast COM object of type 'System.__ComObject' to interface type 'Excel._Workbook'.
Эта операция завершилась неудачно, поскольку произошел сбой вызова QueryInterface COM-компонента для интерфейса с IID '{000208DA-0000-0000-C000-000000000046}' из-за следующей ошибки: Такой интерфейс не поддерживается (Исключение из HRESULT:0x80004002 (E_NOINTERFACE)).
код:
Excel.ApplicationClass excel = new Excel.ApplicationClass();
excel.Application.Workbooks.Add(true);
((Excel.Range)excel.Cells[1,1]).EntireRow.Font.Bold = true;
excel.Cells[1,1] = "col a";
excel.Cells[1,2] = "col b";
excel.Cells[1,3] = "col c";
// here loop and populate rows, nothing special just as above, all strings
excel.Visible = true;
Excel.Worksheet worksheet = (Excel.Worksheet)excel.ActiveSheet;
((Excel._Workbook)worksheet).Activate();
Как мне решить эту проблему?Я попытался переименовать из Excel.ApplicationClass в Excel.Application, как этот пост в MSDN Social предложил, но не повезло: (