Accès personnalisé .NET DLL en VBScript
J'ai écrit une DLL dans .NET et je veux y accéder en VBScript. Je ne veux pas ajouter à l'assemblée répertoire.
Est-il un moyen de point trop la DLL et de créer une instance de celui-ci?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez vous inscrire que .NET dll avec regasm utilitaire en spécifiant
/codebase
paramètre. Ce paramètre n'est pas recommandé pour une utilisation avec unsigned assemblées, mais il fonctionne lorsque vous ne pouvez pas mettre votre assembly dans le GAC.Veuillez noter que vous ne devez pas changer votre .dll chemin après cette opération, car il insère ce chemin dans le registre de Windows.
J'ai juste eu à le faire moi-même, mes conclusions sont les suivantes:
Faire des types visibles COM:
Vous assurer d'avoir le jeu suivant de votre assemblée - généralement dans AssemblyInfo.cs
Après la construction de votre fichier DLL, à partir du SDK de la ligne de commande exécuter:
Cela devrait répondre:
Si vous obtenez
ensuite, vous devez définir
ComVisible
ou n'ont pas de public, des types statiques.À Partir De PowerShell
De vbs
huseyint la réponse est sur l'argent, cependant, je voulais ajouter un peu d'elle. Voici un exemple de code que j'ai utilisé pour cette question, peut-être il peut rapide...
J'avais inclus une méthode IsAlive dans la dll...
...et a pu vérifier que l'correctement enregistrés à l'aide de la syntaxe:
Espère que cela aide quelqu'un...
Dans le cas où quelqu'un a besoin de debug/étape dans le .Net dll qui est appelée à partir de VBScript seulement:
Sur le .Net projet dll de débogage de l'écran de configuration, définissez l'option "démarrer le programme externe" par la navigation à l'wscript.exe programme (situé dans C:\WINDOWS\system32\wscript.exe).
Sur les "Arguments de Ligne de Commande", définissez le nom de fichier et l'emplacement du chemin d'accès du fichier VBScript (C:\Test\myTest.vbs). Assurez-vous que le fichier vbs et fichier dll sont dans le même emplacement.
Enfin, dans le .Projet Net code source de la DLL à seulement définir le point de rupture et cliquez sur "démarrer le débogage"
Pas directement. Vous aurez besoin d'un COM Callable Wrapper pour tout .NET-library vous aurez l'appel de COM (et donc, VBScript). Par conséquent, vous devez soit créer directement un CCW à la DLL ou vous pouvez créer un CCW pour un proxy DLL qui fournit des méthodes génériques pour charger un .NET DLL et fournir des méthodes pour vous qui appelez les méthodes réelles sur le composant et de retourner le résultat. C'est vraiment pas propre du tout. Donc, en général, la réponse est non.