首页 > 解决方案 > 无法加载文件或程序集“VMware.Binding.WsTrust”

问题描述

我正在尝试使用 VMWare SDK 在 C# 和 .NET 中创建一个 Windows 服务,该服务可以自动启动和停止 VMWare Workstation 中的虚拟机。我已经下载了 SDK 并在我的项目中引用了必要的 dll 文件。

    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);

我正在尝试运行一个基本示例,但在尝试连接到服务时,我遇到以下异常:“无法加载文件或程序集 'VMware.Binding.WsTrust, Version=12.2.0.3593, Culture=neutral, PublicKeyToken= null' 或其依赖项之一。系统找不到指定的文件。”

在 .NET Core 中作为控制台应用程序运行时,我遇到类似的异常:“无法加载文件或程序集 'VMware.System.Private.ServiceModel”。

我尝试从我的用户文件夹中的 nuget 包中复制运行时 dll,并修改我的 .csproj 文件以包含这些 dll,但我仍然遇到异常。

我正在使用 .NET Framework 4.7.2。我的目标操作系统是 Windows 10。

组件添加:

    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\...

异常消息:“无法加载文件或程序集 'VMware.Binding.WsTrust, Version=12.2.0.3593, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。系统找不到指定的文件。”

任何帮助将不胜感激,谢谢。

标签: c#.netsdkvmwarevmware-sdk

解决方案


(关于 SO 的第一篇文章,但所有精彩智慧的常客)

我在尝试学习如何使用 .Net 与 vSphere 交互时遇到了同样的问题。

通过从 VMware vSphere SDK 构建 vsphere-ws\dotnet\cs\samples\VMware.Binding.WsTrust 解决了这个问题,然后将生成的 dll 引用添加到我的项目中。

我刚刚在 Visual Studio 中加载了 Samples2012.sln 并构建了该特定项目。

涉及版本:

  • PowerCLI 12.0.0 build 15947286(不确定是否需要,但这是我引用 VMware.Vim.dll 的地方)
  • VMware vSphere SDK 6.7U3 (6.7.0-14379537)
  • 视觉工作室 2019 (16.8.2)
  • .NET 框架 4.8
  • 视窗 8.1

希望这会有所帮助。


推荐阅读