2016-10-23 1 views
0

enter image description here J'ai un projet Visual Studio Community 2015 qui fonctionnait correctement, jusqu'à ce que j'essaie de créer un package MSI avec celui-ci. Il semblerait que l'une des références à une bibliothèque ActiveX a changé en type Assembly, et je n'arrive pas à comprendre comment le changer. Le champ des propriétés est non modifiable. Sur un autre ordinateur, le projet fonctionne très bien (comme la référence est le type de fichier "ActiveX").Comment faire pour modifier le type de fichier de référence de "Assembly" à "ActiveX" dans Visual Studio?

+1

Une capture d'écran serait utile –

+0

Hmm, vous avez tâtonné pendant un moment. On dirait que vous avez finalement fini par ajouter le résultat de construction (l'assemblage d'interopérabilité généré) d'une autre machine via une copie OneDrive. Notez le nom du dossier obj/x86/Debug. Pourquoi vous ne nous dites rien à ce sujet est étrange, vous ne nous aidez pas à vous aider du tout. La supposition aveugle est que vous avez fait ces choses simplement parce que le composant COM n'est pas installé sur cette machine. Exécutez le programme d'installation du fournisseur. –

Répondre

0

Semblable à l'ActiveX n'est pas enregistré sur votre ordinateur. Trouvez la DLL, puis enregistrez-le en utilisant la commande "regsvr32.exe nameofdll.dll" à partir d'une invite de commande. Si tout va bien Windows devrait dire "DLLRegisterServer dans nameofdll.dll a réussi ". Maintenant, rechargez le projet.

+0

Erreur d'obtention "Le module nameofdll.dll a été chargé mais le point d'entrée DllRegisterServer n'a pas été trouvé Vérifiez que nameofdll.dll est un fichier DLL ou OCX valide, puis réessayez" – valen

+0

Exécutez 'dumpbin/exports mydll.dll' et confirmez que vous pouvez voir une fonction DllRegisterServer. Sinon, votre DLL n'est pas COM. Selon Hans commentaire est-il un installateur? Si 'dumpbin' renvoie la fonction, assurez-vous qu'il n'y a pas de dll en double sur votre machine. – OrdinaryOrange