Существует ли оболочка C # для API VMware VIX? - PullRequest
6 голосов
/ 18 декабря 2008

Я использую VMware Workstation 6.5 в Windows Vista x64. Я хотел бы автоматизировать некоторые задачи управления виртуальными машинами. Я знаю, что есть COM API (http://www.vmware.com/support/developer/vix-api/), который я мог бы использовать напрямую.

Существует ли оболочка C # для этого COM API?

Спасибо

Арни

Ответы [ 4 ]

7 голосов
/ 24 декабря 2008

Теперь есть хорошая библиотека, которая оборачивает это: http://www.codeproject.com/KB/library/VMWareTasks.aspx

5 голосов
/ 15 июня 2009

VMWareTasks - это полная оболочка для VixCOM: http://vmwaretasks.codeplex.com

3 голосов
/ 18 декабря 2008

ArnieZ.

Любая COM DLL может быть использована из .NET. Добавление его в качестве ссылки в Visual Studio создаст DLL с именем

"YourDll.Interop.dll"

Это библиотека .NET -> COM-маршалинга, которая будет делать то, что вам нужно.

Вы также можете сгенерировать это из командной строки, используя tlbimp.exe

Конечно, вы должны иметь в виду, что вы вызываете COM-компоненты, и не забывайте использовать .NET Marshaling API для уменьшения количества ссылок, когда вы их используете, иначе вы вызовете утечки памяти.

Я обернул реализацию взаимодействия в другую библиотеку, которая реализует IDisposable на своих объектах, так что очистка раньше выполнялась автоматически, но если это большая библиотека, это может не стоить усилий.

1 голос
/ 18 декабря 2008

Как насчет добавления ссылки на этот API в вашу VS.Net и позволить VS.Net создать для вас управляемую оболочку? Я не знаю ни одного "управляемого" API для этого. Дайте мне знать, если найдете это:)

...