Переключение между платформами-конфигурациями нарушает COM-совместимость - PullRequest
0 голосов
/ 26 апреля 2011

У меня довольно странная проблема с Visual Studio еще раз. У меня есть библиотека, которая зависит от одной COM-библиотеки. Внезапно COM-библиотека в зависимости от MDAC 2.7 внезапно 1 произвела эту ошибку компиляции:

Error loading type library/DLL. (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))

Вместе с этой ошибкой обнаружились другие, что Свойства не были найдены на обозначенном объекте. После долгих исследований моей системы я смог выяснить, что по некоторым причинам некоторые библиотеки MDAC больше не регистрируются 2 . Регистрация их вручную (поскольку установка больше не позволяла мне переустанавливать ее) исправила ошибку, но ошибки, связанные с не найденными свойствами, остались. Это сводилось к этому:

Me.prv_comObject.Value = aValuePassedIn ' This throws the error that the
                                          Property "Value" could not be found '

' This works instead: '
Me.prv_comObject.set_Value(aValuePassedIn)

Теперь приходит подсказка, это только разрыв в конфигурации x86, в Any CPU Я все еще могу использовать Свойства. Я также не смог воспроизвести это с SharpDevelop, SD всегда ожидает свойства. Я также не уверен, связано ли это каким-либо образом с MDDAC-Thingy.

Это проект VB.NET, библиотека COM - VB6, а ОС - Windows XP. Есть идеи, что может вызвать такое поведение?

1 : Да, внезапно. Я нормально развивался, затем переключился в режим Release, и тогда он был там и больше не уходил.

2 : Да, я возился с MDAC, потому что пытался помочь точно определить проблему, которая была , которая появилась в Windows 7 SP1 (да, мы не знали об этом ). Но я не стал возиться с регистрацией библиотек MDAC.

1 Ответ

0 голосов
/ 29 апреля 2011

После трех дней размышлений о том, что это такое, оно ушло.

Я очистил проекты, удалил obj и bin, и внезапно все вернулось на круги своя.Похоже, объектные файлы были повреждены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...