Существует ли оболочка C # для VMware VIX API?
Вопрос
Я использую VMware Workstation 6.5 в Windows Vista x64.Я хотел бы автоматизировать некоторые задачи по управлению виртуальными машинами.Я знаю, что существует COM API (http://www.vmware.com/support/developer/vix-api/) доступно, которое я мог бы использовать напрямую.
Существует ли оболочка C # для этого COM API?
Спасибо,
Арни
Решение
Арниз.
Любая COM-библиотека DLL может быть использована из .NET.Добавление его в качестве ссылки в visual studio приведет к созданию библиотеки DLL с именем
"Твой друг.Interop.dll"
Это библиотека маршалинга .NET -> COM, и она будет делать то, что вам нужно.
Вы также можете сгенерировать это из командной строки, используя tlbimp.exe
Конечно, вам нужно будет иметь в виду, что вы вызываете COM-компоненты, и не забудьте использовать .NET Marshaling API для уменьшения количества ссылок, когда вы закончите их использовать, иначе вы вызовете утечки памяти.
Я включил реализацию взаимодействия в другую библиотеку, которая реализует IDisposable для своих объектов, чтобы очистка выполнялась автоматически раньше, но если это большая библиотека, это может не стоить затраченных усилий.
Другие советы
Теперь есть хорошая библиотека, которая завершает это:http://www.codeproject.com/KB/library/VMWareTasks.aspx
VMWareTasks - это полная оболочка для VixCOM: http://vmwaretasks.codeplex.com
Как насчет того, чтобы добавить ссылку на этот API в свой VS.Net и позволить VS.Net создать управляемую оболочку для вас?Я не знаю ни о каком "управляемом" API для этого.Дайте мне знать, если вы это найдете :)