我从SourceForge下载了一个包,文件号为PlanEph,它有64位和32位的C#DLL。通过将DLL放入我的bin/Debug目录(我使用Visual Studio 2015社区)并添加该DLL作为参考,我获得了包含32位C#演示的工作。不可预测的系统.DllNotFoundException
然后我尝试在单独的解决方案中制作自己的演示版本,并且得到了System.DllNotFoundException。各种各样的实验让我相信我的Visual Studio安装中的任何位置都不能有两个相同的命名空间名称,所以我删除了所有内容并重新开始。
我做了一个目录C \ GJAbin,把它放入DLL中,并将它添加到系统路径变量中。我还在该目录中添加了helloWorld类型的程序,并从命令行执行它以验证目录是否真的在路径中。然后我重新创建演示解决方案,将DLL添加为资源,并“成功”构建解决方案。然后我运行它并得到System.DllNotFoundException。
所以我不明白为什么在编译时发现DLL,而不是在运行时。
它可能是.net框架版本的问题,您应该检查您的新项目.net框架版本是否与包版本相同或更高 –
如果.net框架版本错误,它将无法正常工作。既然它工作过一次,我相信框架版本是可以的。此外,Visual Studio今年重新安装。 –