1

问题
我创建了一个实现 System.Management.Automation 参考的 C# 项目(允许我在我的项目中编写 powershell 命令)。
在此处输入图像描述在此处输入图像描述

我编译了项目并将 dll 复制到我的 Rainmeter 应用程序的 plugins 文件夹中,以便我可以将它与其他 dll 的 Rainmeter 一起使用。在此处输入图像描述

这在我的机器(64 位)上完美运行;但是,我想在另一台服务器(也是 64 位)上加载相同的配置。两台机器都使用相同的 .NET 框架 (4.5) 安装。

根据这个来源,我应该能够简单地使用包含的 dll 复制 Rainmeter 文件夹,并且它应该可以毫无问题地运行(我正在使用 Rainmeter 的便携式安装)。

我收到错误“System.IO.FileNotFoundException”,除非我在另一台服务器上运行 Rainmeter 时删除了我创建的“SystemVersion.dll”。
在此处输入图像描述

问题
由于问题显然是我添加的 dll,我假设引用没有被添加到 dll 中?

==================================================== ======================= 编辑
根据@Hackerman 的回答,问题是dll 无法找到我的参考。System.Management.Automation 的路径需要在机器上安装 powershell 3.0 版才能加载参考。
在此处输入图像描述 我的服务器运行的是 powershell 2.0 版,但在安装 3.0 版后,dll 能够加载参考,Rainmeter 将按预期显示我的结果。

4

1 回答 1

1

当您构建您class library的. 您得到的是因为您的 dll 无法在目标服务器上加载引用。在服务器上安装应该可以解决问题。embeddeddllSystem.IO.FileNotFoundExceptionSystem.Managem‌​ent.Automation.dllPowerShell 3.0

于 2016-10-07T19:29:22.450 回答