C#应用程序在其工作目录中找不到dll

Sme*_*jki 5 .net c# dll reference visual-studio-2010

我刚从C ++切换到C#,但对引用DLL感到有些困惑。我有一个第三方DLL,我的简单功能测试应用程序使用了其中的一些方法。当我编译项目时,一切顺利。但是,当我在另一台计算机上运行它时,虽然该DLL位于应用程序的工作目录中,但该DLL丢失了。

更奇怪的是,我有一个非常复杂的应用程序的源代码,它依赖于此DLL的旧版本。它将DLL复制到工作目录(与我的应用程序一样),并且运行良好。我遍历了代码和所有解决方案项目的设置,但没有发现任何明显的不同,这使得它在我的测试应用程序无法工作时起作用。

请告诉我如何从工作目录(Visual Studio 2010)引用dll。谢谢

编辑-例外:

未处理System.IO.FileNotFoundException

消息=无法加载文件或程序集'TIS.Imaging.ICImagingControl32,版本= 3.2.4.1146,区域性=中性,PublicKeyToken = 257805929e8b7928'或其依赖项之一。该系统找不到指定的文件。

来源= ICtestapp

FileName = TIS.Imaging.ICImagingControl32,版本= 3.2.4.1146,文化=中性,PublicKeyToken = 257805929e8b7928

FusionLog = WRN:程序集绑定日志关闭。

若要启用程序集绑定失败日志记录,请将注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)设置为1。

注意:与程序集绑定失败日志记录有一些性能上的损失。要关闭此功能,请删除注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog]。

StackTrace:位于ICtestapp.Form1.InitializeComponent(),位于ICtestapp.Form1..ctor(),位于ICtestapp.Program.Main()内部InnerException:

bry*_*mac 4

这是来自 .net 团队的 Suzanne Cook 的一篇关于调试 .net 加载器问题的精彩博客文章。

http://blogs.msdn.com/b/suzcook/archive/2003/05/29/57120.aspx

以下是有关其加载方式的详细信息:

http://msdn.microsoft.com/en-us/library/yx7xezcf(v=vs.71).aspx