Tengo un DLL VB6 libre de registro al que hace referencia mi biblioteca de ensamblados .NET 3.5 al que hace referencia en última instancia una aplicación .NET 3.5 WinForms (no estoy seguro de que sea relevante, pero incluido para pintar una imagen).Reg COM gratuito - Aislamiento de referencia COM - valor faltante '(predeterminado)'
estoy recibiendo el 'problema de aislamiento de referencia COM 'error SomeVBDll': Registry key 'HKEY_CURRENT_USER\SOFTWARE\CLASSES\CLSID\{dd1d7f58-1d6b-4370-a1b9-05c03816a128}\InProcServer32' is missing value '(Default)'
Mi intento inicial era comprobar si realmente existió este valor y luego ponerlo en su lugar. Esto dio como resultado el mismo mensaje anterior en la compilación.
¿Alguien ha encontrado este problema y conoce alguna resolución al respecto?
Gracias de antemano. A continuación se muestra el manifiesto de la asamblea que hace referencia directamente al dll de VB6.
<assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity name="Native.App.Core" version="1.0.0.0" type="win32" />
<file name="SomeVBDll.dll" asmv2:size="184320">
<hash xmlns="urn:schemas-microsoft-com:asm.v2">
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<dsig:DigestValue>BWWHQTqNGUupT8xznLoN3jn7S9Y=</dsig:DigestValue>
</hash>
<typelib tlbid="{755c1df5-d0c5-4e10-a93d-54bf186e8daf}" version="1.0" helpdir="" resourceid="0" flags="HASDISKIMAGE" />
<comClass clsid="{dd1d7f58-1d6b-4370-a1b9-05c03816a128}" threadingModel="Apartment" tlbid="{755c1df5-d0c5-4e10-a93d-54bf186e8daf}" progid="SomeVBDll.MyClass" />
</file>
</assembly>
EDITAR ///
Marcado todas las clases dentro de la DLL de VB6 tan bien multiuso parece haber resuelto el problema. Si bien esto soluciona el problema que estaba experimentando y todavía me permite usar COM sin registro, ¿alguien sabe cómo moverse para tener que configurar todas las clases COM Instanciando en MultiUse?
Este hilo [http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.interop /2006-01/msg00097.html] indica que el problema podría estar relacionado con el hecho de que hay algunas clases dentro del dll VB6 que tienen instancias marcadas como privadas. Este también es el caso para mí, tengo una clase MultiUse (no privada) y el resto es privado. Preferiría no marcar a los demás como MultiUse, pero lo haré para ver si de hecho eso funciona alrededor del problema ... –
Ok, entonces la cosa MultiUse parece ser solo una solución temporal y no era el problema subyacente real . Ahora recibo el mismo problema mencionado en mi publicación original. Me estoy ejecutando como no administrador en Windows Vista Ultimate x64 construyendo el proyecto en Visual Studio 2008 como no administrador. –
Parece informar el error descrito anteriormente para cada clase definida en la DLL COM. He verificado que cada clase está marcada como MultiUse. –