2012-03-30 140 views
0

我不是一个非常有经验的Windows开发人员,所以我希望这一切都有道理。System.IO.FileNotFoundException当试图加载DLL

我使用Visual Studio 2010创建了一个托管的程序集DLL。该DLL(Plip.dll)包含一个C++类,它使用System.IO.SerialPort类来通过串行端口进行一些简单的通信。

在第二个Visual Studio项目中,我创建了一个使用Plip.dll中找到的类的简单GUI。在我的GUI项目中,我有这样一行:#使用“Plip.dll”。在项目属性中,我将“解决#使用引用”值设置为Plip.dll的正确位置。 GUI构建得很好。如果我将GUI.exe和Plip.dll复制到相同的文件夹中,则GUI在我的计算机上运行得很好。

我遇到的问题是,当我将这两个文件复制到第二台计算机时,我无法运行GUI可执行文件。我得到以下错误:“System.IO.FileNotFoundException。无法加载文件或程序集”Plip.dll“Vesion = ....”。即使exe和dll都位于相同的文件夹中,我也会收到此错误。

有关如何解决此问题的任何建议?我需要在我的GUI项目中设置一些选项来在运行时正确加载DLL吗?

回答

3

我想问题不在于Plip.dll,但它是依赖关系。

在第二台计算机上使用Dependency Walker以查看是否需要任何其他dll(它们可能安装在系统文件夹中,或安装在开发计算机上的%PATH%中,但不在另一台上)。

如果第二个计算机上没有安装Visual Studio,你可能缺少Microsoft Visual C++ 2010 Redistributable Package(你需要在其他计算机上安装)

另外,还要确保你在Release编译,因为调试版本需要调试的依赖。

+0

你明白了。 Dependency Walker显示我错过了MS C++ 2010 Redistributable。谢谢您的帮助。 – 2012-03-30 17:18:41