Błąd dostępu do komponentów COM
Zbudowałem dodatek do Microsoft Office Word. Nie ma problemu z używaniem dodatku, gdy Word jest uruchamiany jako Administrator, ale jeśli nie jest uruchamiany jako Administrator, istnieją dwa wspólne wyjątki dostępu do elementów wstążki.
Pierwszy wyjątek:
Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Core.IRibbonUI'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000C03A7-0000-0000-C000-000000000046}' failed due to the following error: could not be found. (Exception from HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).
at Microsoft.Office.Core.IRibbonUI.InvalidateControl(String ControlID)
Ten błąd występuje, gdy kontrola jest unieważniona następującym kodem:
ribbon.InvalidateControl("control-id");
I drugi wyjątek:
Unable to cast COM object of type 'Microsoft.Office.Interop.Word.ApplicationClass' to interface type 'Microsoft.Office.Interop.Word._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00020970-0000-0000-C000-000000000046}' failed due to the following error: could not be found. (Exception from HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).
at Microsoft.Office.Interop.Word.ApplicationClass.get_Selection()
Ten błąd występuje w ostatniej linii z następujących kod:
object wdStory = Word.WdUnits.wdStory;
object wdMove = Word.WdMovementType.wdMove;
WrdApp.Selection.EndKey(ref wdStory, ref wdMove)
Jak mogę rozwiązać ten problem?
6 answers
Problem rozwiązany!
Wcześniej zainstalowałem Office 2010, więc są pewne niespójności w rejestrze systemu Windows.
Aby je naprawić, otwórz regedit
i znajdź dla CLSID z błędu.
Znajdziesz coś takiego dla drugiego błędu:
HKEY_CLASSES_ROOT\Interface\{00020970-0000-0000-C000-000000000046}
Z podkluczami:
- ProxyStubClsid
- ProxyStubClsid32
- TypeLib
Spójrz na wartości (Default)
i Version
wewnątrz TypeLib
.
Teraz znajdź węzeł poniżej, używając wartości {[2] } jako <TypeLib ID>
.
HKEY_CLASSES_ROOT\TypeLib\<TypeLib ID>\<version>
Jako potomek tego elementu znajdziesz więcej niż jeden element, jednym z nich jest Version
pierwszego rejestru. Jeśli sprawdzisz pozostałe elementy, przekonasz się, że nie wskazują na nic. Usuń pozostałych!!!Rozwiązane!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-15 13:12:44
Zacząłem otrzymywać ten sam wyjątek po aktualizacji do najnowszej wersji Office. Próbowałem wielu sugerowanych poprawek, w tym czyszczenia rejestru w sposób podobny do tego, co opisał @ Victor.
To, co w końcu pomogło (choć mogło być kombinacją czynników), to "naprawa" instalacji:
Programs and Features → latest Office version → Repair .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-27 21:23:07
Naprawa biura zadziałała. W moim przypadku zainstalowałem projekt, który moim zdaniem zmienił konfigurację i nie był w stanie wywołać procedury migracji danych ze skoroszytu Excela do SQL
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-19 10:05:04
Wystarczy zainstalować obsługę programowalności Office 2010 / MS word/. NET.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-17 06:46:29
@Victor postawiłeś mnie na dobrej drodze. Moim problemem nie było wiele wartości w rejestrze, ale raczej brakująca wartość, której Office365 nigdy nie dodał. Dzięki tobie udało mi się znaleźć własne rozwiązanie. Tysiąc tysięcy dzięki.
Szczegóły są tutaj dla wszystkich, którzy wciąż szukają rozwiązania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:37
Mam ten sam problem dzisiaj z VS2015 i Office 2013. Zmiana celu platformy na x64 zadziałała.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-20 05:14:47