.net com ocx regfreecom

.net - Use OCX sin registrarlo



com regfreecom (4)

Si, esto se puede hacer. Debe asumir que su aplicación solo se implementará en Windows XP (o Windows Server 2003) o posterior, y luego puede usar lo que se denomina ''COM libre de registro'' para que esto suceda.

Básicamente, lo que hace es crear un archivo de manifiesto para el DLL de control ActiveX para que el cargador de Windows y DLL COM sepan cuál es su registro sin tener que poner eso en el registro.

Un tutorial de qué hacer es en este artículo en MSDN: Activación sin registro de componentes COM: un tutorial

"Paso 6" y "Paso 7" en ese artículo contienen todo lo que necesitará.

Acabo de probar esto en uno de mis propios programas C # que usa un control de cuadrícula Microsoft ActiveX (el antiguo "MS Flex Grid") y funciona muy bien. Asegúrese de crear un archivo de manifiesto para su aplicación y la DLL COM, y sustituya los GUID apropiados en los lugares correctos. Es posible que necesite usar OLEVIEW para extraer los ID correctos para usar de la DLL de ActiveX si no los tiene a mano.

¿Es posible usar un ocx (control ActiveX) en un winform (probablemente agregándolo programáticamente) sin tener primero el ocx registrado con regsrv32?

Lo que intento lograr es habilitar la instalación de xcopy. He tenido el archivo "AxInterop .dll" y "Interop. .dll" generado desde mi máquina de desarrollo.

He visto la posibilidad de llamar a un dll COM sin registrarlo primero ( ProSysLib , según el autor, pero aún no lo he probado), ya que ocx también está basado en COM, así que supongo que debe haber alguna manera de haz eso también.


Incluso es mucho más simple en Visual Studio: solo ve a References, encuentra las posiciones creadas por tu ocx (debe haber 2, AxSomething y Something) y configúralas para las dos Isolated: true en sus propiedades. No se manifiesta, no hay código. Ahora debería distribuir su exe con el archivo dll que contiene ocx. En su máquina de desarrollo, la ocx puede registrarse.


Después de 10 horas de búsqueda de cómo ejecutar la aplicación VB6 con OCX en Win7 sin registrarlo y derechos de administrador, encontré algunas soluciones de clic aquí: http://mmm4vb6.atom5.com/yes-update-0-12-5479.html# do

Necesita verificar Embed Manifest para que funcione. Funciona como encanto!

Sí publico la solución aquí, porque también encontré esta pregunta aquí.


¡Se advirtió que, al parecer, el uso de COM libre de registro para componentes COM creados en .NET puede provocar bloqueos aleatoriamente en Windows XP!

Enlaces: Pregunta de donde aprendí esto, artículo de la base de conocimiento de Microsoft mencionado en esa pregunta. Hay una revisión, pero no está permitido redistribuirla.