2010-06-30 26 views
1

Nous avons un assemblage qui est utilisé par l'exécutable VB6 via COM Interop. Cet assembly utilise un autre assembly .NET (non disponible pour COM). Nous avons défini un .manifest pour notre application VB6, afin que nous puissions utiliser l'assembly .NET sans inscription. Nous avons également défini un .config pour notre application VB6, avec des paramètres de sondage, pour regarder dans les sous-répertoires ("bin") pour les assemblages. Si nous mettons tous les assemblys .NET dans le sous-répertoire spécifié ("bin"), notre application démarre avec succès et nous pouvons travailler avec elle jusqu'à ce que l'assemblage interop appelle du code des autres assemblys. Ensuite, nous obtenons une erreur d'exécution '429': le composant ActiveX ne peut pas créer d'objet.Sondage .NET Assemblage avec enregistrement gratuit COM/.NET Interop

Lorsque vous supprimez le fichier .config et que vous placez tous les fichiers dans le même répertoire, l'application fonctionne comme prévu.

Est-il possible d'utiliser la vérification pour les assemblys .NET utilisés par un exécutable VB6? Existe-t-il un moyen de configurer correctement le palpage afin que les autres assemblages soient correctement localisés?

.config

<configuration> 
    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <probing privatePath="bin"/> 
     </assemblyBinding> 
    </runtime> 
</configuration> 

Répondre

1

Eh bien, ressemble à votre fichier .config ne fonctionne pas. Cela peut arriver lorsque vous essayez de déboguer l'application VB6 à partir de l'IDE VB6, le CLR cherchera dans le mauvais répertoire pour le fichier .config. L'outil ultime dont vous avez besoin pour résoudre ce problème est fuslogvw.exe, il vous montre où le CLR a cherché l'assemblage.

+0

L'assemblage interop est trouvé en utilisant le sondage, mais les assemblages dépendants ne sont pas résolus. Je vais essayer fuslogvw.exe. – Jehof