.dll会保留添加到项目中的任何引用吗?

时间:2016-10-07 17:00:31

标签: c# dll transfer rainmeter

问题
我创建了一个C#项目,它实现了System.Management.Automation引用(允许我在我的项目中编写powershell命令)。
enter image description here enter image description here

我编译了项目并将dll复制到Rainmeter应用程序的plugins文件夹中,以便我可以将其与其他dll的Rainmeter一起使用。 enter image description here

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

根据这个source,我应该能够简单地使用附带的dll复制Rainmeter文件夹,它应该没有任何问题(我使用Rainmeter的便携式安装)。

我收到错误" System.IO.FileNotFoundException"除非我删除" SystemVersion.dll"我在另一台服务器上运行Rainmeter时创建的 enter image description here

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

=============================================== ========================== 的修改
根据@Hackerman的回答,问题是dll无法找到我的参考。 System.Management.Automation的路径需要在机器上安装powershell 3.0版才能加载引用。
enter image description here 我的服务器运行的是PowerShell版本2.0,但在安装3.0版后,dll能够加载引用,Rainmeter会按预期显示我的结果。

1 个答案:

答案 0 :(得分:1)

当您构建class library时,引用不会在最终embedded上获得dll。您获得的System.IO.FileNotFoundException是因为您的dll无法在目标服务器上加载System.Managem‌​ent.Automation.dll引用。在服务器上安装PowerShell 3.0应该可以解决问题。