我正在使用C#语言创建一个程序,我正在使用一个特殊的Dll文件,其中使用我正在使用的方法存储类。在项目中,我添加了Dll文件作为参考,然后在代码中打印using "library_name"
。它完全适用于我正在制作它的计算机(视觉工作室在哪里),并且在另一台计算机上工作也很棒。但我的程序没有在位于第二台计算机上的虚拟机上工作。当我试图打开它我有一个例外,如:
“无法加载文件或程序集'spd_lib,Version = 1.0.4244.21567,Culture = neutral,PublicKeyToken = null”或其依赖项。系统找不到指定的文件。“
在某处我读到.csproj
文件有一个字符串存储所有项目的引用,所以我试图修改它并给出位于虚拟机上的库的绝对路径,但它无论如何都没有工作有同样的例外。你能告诉我一些与它有关的事吗?
忘了说,我的程序是在WInForms上,所以它完全打开并在虚拟机上工作,但是当我按下按钮(有一个事件,我宣布一个位于Dll文件的类的对象)它有异常,坠毁。所以,我担心这不是.Net框架问题:/
答案 0 :(得分:0)
您托管应用程序的虚拟机是否安装了.Net框架? 安装Visual Studio时,系统中会安装系统dll,但虚拟机可能缺少这些系统dll。
答案 1 :(得分:0)
dll必须存在于虚拟机上才能使您的程序正常运行。为此,您必须在Visual Studio首选项窗口中将此标记为Copy Local
此特定dll(选择参考时按F4) - 当您执行此操作时,它将被复制到bin文件夹(或任何文件夹)发布应用程序时的其他文件夹。
如果它不起作用,您需要检查应用程序从哪里请求此文件。对于此任务,您可以使用fuslogvw或仅使用Process Monitor进行检查。