是否有适用于 VMware VIX API 的 C# 包装器?
我在 Windows Vista x64 上使用 VMware Workstation 6.5。 我想自动化一些虚拟机管理任务。 我知道有一个 COM API (http://www.vmware.com/support /developer/vix-api/)可用,我可以直接使用。
是否有此 COM API 的 C# 包装器?
谢谢,
阿尼
I am using VMware Workstation 6.5 on Windows Vista x64. I would like to automate some of the VM management tasks. I know that there is a COM API (http://www.vmware.com/support/developer/vix-api/) available which I could use directly.
Is there a C# wrapper for this COM API?
Thanks,
Arnie
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
现在有一个很好的库来解决这个问题:
http://www.codeproject.com/KB/library/VMWareTasks.aspx
There's now a nice library that wraps this up:
http://www.codeproject.com/KB/library/VMWareTasks.aspx
VMWareTasks 是 VixCOM 的完整包装器:http://vmwaretasks.codeplex.com
VMWareTasks is a complete wrapper for VixCOM: http://vmwaretasks.codeplex.com
阿尼Z。
任何 COM DLL 都可以从 .NET 使用。 将其添加为 Visual Studio 中的引用将生成一个名为
“YourDll.Interop.dll”
的 DLL ,这是一个 .NET -> COM 编组库,并且会做您需要的事情。
您还可以使用 tlbimp.exe 从命令行生成它。
当然,您必须记住您正在调用 COM 组件,并记住在使用完它们后使用 .NET 封送处理 API 来减少引用计数,否则会导致内存泄漏。
我已将互操作实现包装在另一个库中,该库在其对象上实现 IDisposable,以便之前自动处理清理,但如果它是一个大型库,这可能不值得付出努力。
ArnieZ.
Any COM DLL can be used from .NET. Adding it as reference in visual studio will generate a DLL called
"YourDll.Interop.dll"
This is a .NET -> COM marshaling library, and will do what you need.
You can also generate this from the command line using tlbimp.exe
Of course, you'll have to keep in mind that you are invoking COM components, and remember to use the .NET Marshaling API to decrease reference counts when you are done using them, otherwise you will cause memory leaks.
I've wrapped the interop implementation in another library that implements IDisposable on its objects so that cleanup is handled automatically before, but if it is a large library, this might not be worth the effort.
在 VS.Net 中添加对此 API 的引用并让 VS.Net 为您创建托管包装器怎么样? 我不知道有任何“托管”API 可以用于此目的。 如果你找到了请告诉我:)
How 'bout adding a reference to this API in your VS.Net and let VS.Net create a managed wrapper for you? I'm not aware of any "managed" API for this. Let me know if you find it :)