c# - 无法加载文件或程序集“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' 或其依赖项之一。系统找不到指定的文件。”
任何帮助将不胜感激,谢谢。
解决方案
(关于 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
希望这会有所帮助。
推荐阅读
- python - AttributeError:调用 Clock.schedule_interval 函数时,“NoneType”对象在 Kivy 中没有属性“ids”
- javascript - 为什么 onClick() 没有响应
- maven - Jenkins 中缺少“将工件部署到 Maven 存储库”选项
- react-redux - 如何让 React 组件智能地在用户交互时调度 Redux 动作,而不传递不影响视觉外观的道具
- swift - 调用 Firebase 后自行调整单元格大小
- javascript - 正则表达式如何获取字符串中某个单词之后的内容?
- javascript - 如何在对象中推送数据?
- lambda - Spring 集成 DSL - CharacterStreamWritingMessageHandler
- r - R在彼此之间循环列表中的所有向量
- javascript - 上下文提供程序中的 componentDidMount() 状态更改未触发子组件的重新渲染