Could not load file or assembly 'VMware.Binding.WsTrust'

1k views Asked by At

I am trying work with the VMWare SDK to create a Windows service in C# & .NET that automates launching and stopping virtual machines in the VMWare Workstation. I have downloaded the SDK and referenced the necessary dll files in my project.

    VimClient c = new VimClientImpl();

    ServiceContent sc = c.Connect(serverURL);

    UserSession us = c.Login(username, password);
    IList<EntityViewBase> vmList = c.FindEntityViews(typeof(VirtualMachine), null, null, null);

I'm attempting to run a basic example but when attempting to connect to the service, I encounter the following exception: "Could not load file or assembly 'VMware.Binding.WsTrust, Version=12.2.0.3593, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified."

When running as a Console Application in .NET Core, I get a similar exception: "Could not load file or assembly 'VMware.System.Private.ServiceModel".

I have tried copying over the runtime dll's from the nuget packages in my user folder and modifying my .csproj file to include these dll's, but I am still encountering the exceptions.

I am using .NET Framework 4.7.2. and my Target OS is Windows 10.

Assemblies added:

    InternalVimService50.Wcf
    InternalVimService70.Wcf
    InventoryService55.Wcf
    VimService.dll
    VMware.Vim.dll
    VmWare.Binding.Wcf
Stack Trace: StackTrace = "   at 
VMware.Vim.VimClientImpl.CreateClientChannel()\r\n   at 
VMware.Vim.VimClientImpl.Connect()\r\n   at 
VMware.Vim.VimClientImpl.Connect(String serviceUrl)\r\n   at 
VMWareServiceTest.Service1.OnElapsedTime(Object source, ElapsedEventArgs e) in C:\\Users\...

Exception Message:"Could not load file or assembly 'VMware.Binding.WsTrust, Version=12.2.0.3593, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified."

Any help would be greatly appreciated, thank you.

1

There are 1 answers

1
AndersJ On

(First post on SO, but regular user of all the wonderful wisdom)

I just had this same issue trying to learn how to interact with vSphere using .Net.

Solved it by building vsphere-ws\dotnet\cs\samples\VMware.Binding.WsTrust from the VMware vSphere SDK, and then adding a refrerence to the resulting dll to my project.

I just loaded the Samples2012.sln in Visual Studio and build that particular project.

Involved versions:

  • PowerCLI 12.0.0 build 15947286 (Not sure if needed, but this is where I referenced VMware.Vim.dll)
  • VMware vSphere SDK 6.7U3 (6.7.0-14379537)
  • Visual Studio 2019 (16.8.2)
  • .NET Framework 4.8
  • Windows 8.1

Hopes this helps.