我在 Windows Vista x64 上使用 VMware Workstation 6.5。我想自动化一些虚拟机管理任务。我知道有一个可以直接使用的 COM API ( http://www.vmware.com/support/developer/vix-api/ )。
此 COM API 是否有 C# 包装器?
谢谢,
阿尼
现在有一个很好的库来包装这个: http: //www.codeproject.com/KB/library/VMWareTasks.aspx
VMWareTasks 是 VixCOM 的完整包装器:http: //vmwaretasks.codeplex.com
阿尼兹。
任何 COM DLL 都可以从 .NET 中使用。在 Visual Studio 中添加它作为参考将生成一个名为
“YourDll.Interop.dll”
这是一个 .NET -> COM 编组库,可以满足您的需求。
您也可以使用 tlbimp.exe 从命令行生成它
当然,您必须记住您正在调用 COM 组件,并记住在使用完它们时使用 .NET Marshaling API 来减少引用计数,否则会导致内存泄漏。
我已经将互操作实现包装在另一个库中,该库在其对象上实现 IDisposable,以便之前自动处理清理,但如果它是一个大型库,那么这可能不值得。
如何在你的 VS.Net 中添加对这个 API 的引用并让 VS.Net 为你创建一个托管包装器?我不知道有任何“托管”API。让我知道你是否找到它:)