Кто-нибудь успешно использует без регистрации COM с компонентами .NET? - PullRequest
21 голосов
/ 06 марта 2009

До недавнего времени мы счастливо использовали свободный от регистрации COM для наших собственных компонентов и .NET COM. Однако мы столкнулись со странной проблемой, когда наше приложение начало случайным образом зависать на Windows XP SP3 (но не на Vista) после того, как мы изменили только номер версии сборки .NET, чтобы перейти от кандидата на выпуск к выпуску. (Разве ты не ненавидишь закон Мерфи?)

После многих потерянных трудозатрат и заточки зубов мы обнаружили, что проблема была известной ошибкой в ​​sxs.dll , которая вызывает повреждение кучи при получении информации о классе .NET. Существует исправление, которое устраняет проблему, но исправления не предназначены для повторного распространения.

Мы немного озадачены тем, что в реализации COM без регистрации есть такая ужасная ошибка. Кто-нибудь успешно использует COM без компонентов для регистрации .NET? Как вы решили эту проблему?

Ответы [ 3 ]

9 голосов
/ 19 апреля 2009

Эта проблема связана с тем, как SxS вычисляет размер информации о классе. Номер версии сборки является частью этой информации.

Поскольку он работал с номером версии кандидата на выпуск, возможно, для вас есть обходной путь - сделать номер версии выпуска такой же длины, как и версия RC.

Если это не работает для вас, существует установленный процесс запроса прав на распространение исправлений. Я бы обратился в службу поддержки Microsoft, чтобы продолжить этот маршрут.

4 голосов
/ 08 марта 2009

Мы используем COM без регистрации как для нативных компонентов, так и для компонентов .NET. Мы решили использовать фиксированный номер версии сборки для этих компонентов (в основном, чтобы не загромождать реестр при многократной регенерации компонентов .NET с динамическим номером сборки / *). Не идеально, но у нас есть другие способы определить, какая версия данного компонента используется (они никогда не исправляются по отдельности).

Звучит очень неприятно! Из этой статьи базы знаний кажется, что использование SxS необязательно ... Насколько я знаю, это единственный способ сделать reg-free COM?

1 голос
/ 20 июля 2012

FYI: исправление теперь можно загрузить напрямую: http://www.microsoft.com/en-us/download/details.aspx?id=27680

...