2016-11-29 60 views
-1

我正在C#语言上编程,我正在使用一个特殊的Dll文件来存储我正在使用的方法。在项目中,我添加了Dll文件作为参考,然后在代码处打印using "library_name"。这是我的电脑上完成的工作,我正在制作它(视觉工作室在哪里),而且在另一台电脑上工作也很棒。但是我的程序没有在位于第二台计算机上的虚拟机上工作。当我试图打开它时,我有一个异常: “无法加载文件或程序集'spd_lib,Version = 1.0.4244.21567,Culture = neutral,PublicKeyToken = null”或者它是依赖关系。该系统找不到指定的文件。”程序没有看到DLL文件

某处,我读了.csproj文件有地方存储项目的所有引用一个字符串,所以我试图修改它,并给到位于虚拟机上的图书馆绝对路径,但它忘了说,我的程序是在WInForms上,所以它在虚拟机上完全打开和工作,但是当我在虚拟机上工作时,按下按钮(有事件,我宣布位于Dll文件的类的对象)它有例外和崩溃。所以,恐怕它不是.Net框架问题:/

+0

您是否复制了整个'bin \ Release'文件夹?您是否尝试将其复制到您计算机上的另一个位置并从那里启动? – Oliver

+0

您可以使用[进程监视器](https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx)。仅将视图过滤到您的进程,并注意* FILE NOT FOUND *错误。 – Oliver

+0

奥利弗,是的,我复制所有bin \ Release文件夹。其实我也试图复制所有的解决方案文件夹。但不幸的是,它仍然无法正常工作。所以,我会尽量使用你推荐的程序,谢谢! – Ramon

回答

0

您正在托管应用程序的虚拟机是否安装了.Net框架? 当您安装了visual studio时,系统中会安装dll,但虚拟机可能会丢失这些dll。

+0

是的,它有一个.Net框架4.0。程序没有找到唯一的库在哪里找到我需要的方法。忘了说,我的程序是在WInForms中,所以它是完全开放和工作的,但是当我按下按钮(有事件发生时,我声明位于Dll文件中的类的对象),它有异常并且崩溃。所以,恐怕不是.Net框架问题:/ – Ramon

+0

好的,你使用该类对象的任何依赖注入吗? –

+0

没有。我只是使用这个dll文件,其中类是存储,并没有其他依赖。 – Ramon

0

该DLL必须存在于虚拟机上才能使您的程序正常工作。要做到这一点,你必须在Visual Studio的首选项窗口中为这个特定的dll标记为Copy Local(当你选择了引用时按F4) - 当你这样做时,它会被复制到bin文件夹中(或者当你发布你的应用程序)。

enter image description here

如果它不工作,你需要从那里的应用程序要求这个文件来检查。对于此任务,您可以使用fuslogvw或仅使用Process Monitor进行检查。

+0

是的,我使用“复制本地”设置,它仍然无法正常工作。我会尝试使用您推荐的程序来检查应用程序请求。 Dziekuje! – Ramon

+0

@Ramon也关注这部分错误:“或一个它的依赖关系”可能是这样的情况,该DLL在那里,但'spd_lib'需要的一个DLL的缺失。 –

+0

这很奇怪,但不是,它只有一个库,没有其他依赖关系。我安装在虚拟机视觉工作室,一切都神奇地开始工作!我没有任何想法,为什么会发生,它不应该如此,只是奇怪:/但谢谢你的帮助! – Ramon