我有一个我在Visual Studio中创建的类/库项目,一个SS命名空间中的Spreadsheet。接下来,我创建了一个Windows窗体应用程序,然后我添加了DLL,并将它放在我的资源菜单中,它构建得很好,但是,在运行时,我得到一个TryLoadException
,文档似乎说的意思是它不在集合中,但为什么它编译得很好?此外,我怀疑这是我的DLL的问题,因为我的朋友制作了一个类似的DLL(匹配相同的API,但构建不同,它适用于他的Windows窗体应用程序),我仍然得到TryLoadException
。
这是我遵循的程序。
在执行代码的某处,添加以下行:
Spreadsheet ss = new Spreadsheet(); //他们已经在同一名称空间
构建,请注意没有错误。
答案 0 :(得分:1)
您将DLL放在资源菜单中?这看起来很奇怪。
有些事要尝试。首先,在构建之后,继续查看Windows窗体项目的Debug(或Release,无论您将要运行哪个)文件夹。你应该看到你的exe以及你需要的这个DLL。如果没有,则设置引用的方式存在问题,例如没有CopyLocal或其他内容。
其次,如果您的DLL和Windows窗体应用程序是同一解决方案中的项目,请使用项目引用而不是浏览到DLL。这会让生活变得更简单。
第三,尝试双击exe而不是按F5,看看是否会影响任何内容。 (当前目录在这两种情况下是不同的,这在尝试查找DLL时通常是相关的。)
第四,尝试删除引用,将DLL从Resources或其现在的任何奇怪位置移开,并再次添加引用。看看事情是否表现得更好。