Pregunta

Hasta hace poco, estábamos felizmente utilizando COM sin registro para nuestros componentes nativos y .NET COM. Sin embargo, nos encontramos con un problema extraño en el que nuestra aplicación comenzó a fallar aleatoriamente en Windows XP SP3 (pero no en Vista) después de que solo cambiamos el número de versión de un ensamblado .NET para pasar de la versión candidata a la versión. (¿No odias la ley de Murphy?)

Después de muchos días de trabajo y pérdida de dientes, descubrimos que el problema era un error conocido en sxs .dll que causa daños en el montón al recuperar información sobre una clase .NET. Existe un hotfix que hace que el problema desaparezca, pero no se pretende redistribuir los hotfix.

Estamos un poco sorprendidos de que haya un error tan horrible en la implementación de COM sin registro. ¿Hay alguien por ahí que esté utilizando COM de forma gratuita para los componentes .NET? ¿Cómo resolviste este problema?

¿Fue útil?

Solución

Este problema está relacionado con cómo SxS calcula el tamaño de la información de clase. El número de versión del ensamblaje es parte de esta información.

Ya que estaba trabajando con el número de versión de la versión candidata, quizás la solución para usted es hacer que el número de versión de la versión tenga la misma longitud que la versión RC.

Si esto no funciona para usted, existe un proceso establecido para solicitar derechos de redistribución para las revisiones. Me gustaría contratar el servicio de atención al cliente de Microsoft para seguir esta ruta.

Otros consejos

Estamos usando COM sin registro para los componentes nativos y .NET. Decidimos usar un número de versión de ensamblaje fijo para estos componentes (principalmente para evitar saturar el registro cuando regasamos repetidamente los componentes .NET que tenían un número de compilación dinámico / *). No es lo ideal, pero tenemos otras formas de determinar qué versión de un componente dado se está utilizando (nunca se revisan individualmente).

¡Eso suena como un problema muy desagradable por cierto! Ese artículo de KB casi hace que parezca que el uso de SxS es opcional ... ¿Por lo que sé, es la única forma de hacer COM sin registro?

Para tu información, la revisión ahora se puede descargar directamente: http: // www.microsoft.com/en-us/download/details.aspx?id=27680

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top