Y at-il une enveloppe C # pour l'API VMware VIX?
Question
Je suis en utilisant VMware Workstation 6.5 sur Windows Vista x64. Je voudrais automatiser certaines tâches de gestion VM. Je sais qu'il ya une API COM ( http://www.vmware.com/support / développeur / VIX-api / ) disponibles que je pourrais utiliser directement.
Y at-il une enveloppe C # pour cette API COM?
Merci,
Arnie
La solution
ArnieZ.
Toute DLL COM peut être utilisé à partir de .NET. Ajout comme référence en studio visuel génère une DLL appelée
"YourDll.Interop.dll"
Ceci est un .NET -> COM marshaling bibliothèque, et faire ce que vous avez besoin
.Vous pouvez également générer ce à partir de la ligne de commande en utilisant tlbimp.exe
Bien sûr, vous devrez garder à l'esprit que vous invoquez des composants COM, et souvenez-vous d'utiliser l'API Marshaling .NET pour diminuer les compteurs de référence lorsque vous ne les utilisez pas, sinon vous causer des fuites de mémoire.
J'ai Enveloppez la mise en œuvre de Interop dans une autre bibliothèque qui implémente IDisposable sur ses objets de sorte que le nettoyage est géré automatiquement avant, mais si elle est une grande bibliothèque, cela pourrait ne pas être en vaut la peine.
Autres conseils
Il y a maintenant une belle bibliothèque qui enveloppe cette place: http://www.codeproject.com/KB/library/VMWareTasks.aspx
VMWareTasks est un emballage complet pour VixCOM: http://vmwaretasks.codeplex.com
Comment « combat l'ajout d'une référence à cette API dans votre VS.Net et laissez VS.Net créer un wrapper managé pour vous? Je ne suis pas au courant d'aucune API « géré » pour cela. Faites-moi savoir si vous trouvez:)