7

我在 Windows Vista x64 上使用 VMware Workstation 6.5。我想自动化一些虚拟机管理任务。我知道有一个可以直接使用的 COM API ( http://www.vmware.com/support/developer/vix-api/ )。

此 COM API 是否有 C# 包装器?

谢谢,

阿尼

4

4 回答 4

7

现在有一个很好的库来包装这个: http: //www.codeproject.com/KB/library/VMWareTasks.aspx

于 2008-12-23T23:30:16.603 回答
5

VMWareTasks 是 VixCOM 的完整包装器:http: //vmwaretasks.codeplex.com

于 2009-06-15T12:45:13.327 回答
3

阿尼兹。

任何 COM DLL 都可以从 .NET 中使用。在 Visual Studio 中添加它作为参考将生成一个名为

“YourDll.Interop.dll”

这是一个 .NET -> COM 编组库,可以满足您的需求。

您也可以使用 tlbimp.exe 从命令行生成它

当然,您必须记住您正在调用 COM 组件,并记住在使用完它们时使用 .NET Marshaling API 来减少引用计数,否则会导致内存泄漏。

我已经将互操作实现包装在另一个库中,该库在其对象上实现 IDisposable,以便之前自动处理清理,但如果它是一个大型库,那么这可能不值得。

于 2008-12-18T00:08:47.437 回答
1

如何在你的 VS.Net 中添加对这个 API 的引用并让 VS.Net 为你创建一个托管包装器?我不知道有任何“托管”API。让我知道你是否找到它:)

于 2008-12-17T23:52:40.527 回答