我在运行VB.NET控制台应用程序时收到“找不到方法:'Boolean MyCompany.LibraryAssembly.SomeFunction(System.String)'”异常/错误。
该方法是外部组件的一部分,它肯定在组件中。当我进入调用方法的函数时,错误仅发生在运行时 我有我的项目引用的程序集,我不是在本地复制它。 Intellisense没有显示错误,编译器也没有。我静态加载程序集不是动态的。
我引用了本地文件夹(不是GAC),尽管GAC也提供了相同的版本。
有关我可以查看的内容的任何建议吗?
答案 0 :(得分:2)
我发现解决方案是使用相同版本的本地程序集再次更新GAC。我通过将程序集文件拖放到C:\ Windows \ Assembly文件夹中来完成此操作。这样做之后&然后重建我的控制台应用程序问题就消失了。奇怪,因为GAC中的程序集已经显示与本地版本号相同的版本号。
答案 1 :(得分:1)
这是哪个.NET版本?
从您的方法名称,看起来该方法是在Module
中定义的?
我在网上发现了一些(较旧的)引用,模块函数无法在程序集外部访问。
当我用我的VS2008测试时,它运行良好。
模块使用Shared方法编译为NotInheritable类。尝试参考包含模块/类名称的方法,看看它是否有所作为?
如果使用强大的程序集名称,则从GAC加载优先。如果可能,暂时从GAC中删除程序集,只是为了确保您没有使用旧版本。
答案 2 :(得分:0)
尝试删除参考&再加一次。这样做时,只需查看对象的.NET版本信息即可。然后将其与您应用的版本进行比较。
(我认为GAC已经优先考虑本地文件夹。不仅仅是这个。还请检查GAC Dl的版本。)
同时检查功能是否可访问(可能受保护还是内部功能)
答案 3 :(得分:0)
清理和重建通常会解决我找不到异常的方法。
答案 4 :(得分:0)
我认为正在运行的应用程序的bin包含旧程序集。在应用程序箱中复制新程序集。