如何使用VIX连接到vmware(c#wrapper)

时间:2012-02-21 14:53:35

标签: c# api vmware virtualization vix

我正在尝试使用VMWareTasks(http://vmwaretasks.codeplex.com)连接到VMWare Player计算机但是抛出错误..

// declare a virtual host
using (VMWareVirtualHost virtualHost = new VMWareVirtualHost())
{
    string vmfile = @"D:\SIRETIH-Releases\SIRETIH_Virtual\pc-virtual\siretih.vmx";
    // connect to the host
    virtualHost.ConnectToVMWarePlayer(); // <<-- this line throws an error... 

    using (VMWareVirtualMachine virtualMachine = virtualHost.Open(vmfile))
    {
        virtualMachine.WaitForToolsInGuest();
        virtualMachine.LoginInGuest("siretih", "");
    }
}

我正在使用Visual Studio 2010(C#),VMWareTasks,VmWare Player 4.0.2 build-591240(Windows操作系统),Windows 7 ......

虚拟机有vmware工具......

我是否需要再安装dll或api?

No se controló System.Exception
Message=Failed to connect: serviceProviderType="Player" hostName="" hostPort=0 username="" timeout=60
Source=Vestris.VMWareLib
  StackTrace:
en Vestris.VMWareLib.VMWareVirtualHost.Connect(ServiceProviderType serviceProviderType, String hostName, Int32 hostPort, String username, String password, Int32 timeout)
   en Vestris.VMWareLib.VMWareVirtualHost.ConnectToVMWarePlayer(Int32 timeoutInSeconds)
   en Vestris.VMWareLib.VMWareVirtualHost.ConnectToVMWarePlayer()utionContext, ContextCallback callback, Object state)

ConnectToVMWarePlayer()方法只有一个arg ...有一个方法“ConnectToVMWareVIServer”,但我不是只使用vmware服务器播放器......

public void ConnectToVMWarePlayer(
    int timeoutInSeconds
)

2 个答案:

答案 0 :(得分:1)

我知道有点晚了,但是如何获得可以使用VMWareVirtualMachine对象的以下方法:

VMWareVirtualMachine virtualMachine = SetupVM(virtualHost, vmfile);

只需对null进行一次双重检查,以确保您拥有可以使用的实际实例。这就是我去做的方式,但也许我的用例与你的用例不同。

答案 1 :(得分:0)

我不确定它是否完全相同,但是当你连接到VIServer时,你说的代码行抛出错误需要主机和用户凭据:

virtualHost.ConnectToVMWareVIServer(VMServerHost, VMServerUserName, VMServerPassword);

您能否将该信息提供给VMWareVirtualHost.ConnectToVMPlayer方法?