我在一个组件中使用了可选参数,但是调用它的另一个组件没有更新参数数量就进行了编译。只有添加了参数的那个组件才被编译和部署为修补程序,而调用的那个组件保持不变。
当调用组件运行时,它会出现错误:
异常信息
异常类型:System.MissingMethodException 消息:"未找到方法:'LabelURLs IPSD.BnB.Transaction.Postage.GetLabelURLs(System.String)'。" 数据:System.Collections.ListDictionaryInternal TargetSite: Void GenerateScanForm(Int32, Int32) HelpLink: NULL Source: BnBDispenseQueueProcess
据我所知,由于新的参数是可选的,它不应该引发错误。还有一件事,调用组件(EXE)作为Windows服务运行。
我们发现了一个非常奇怪的解决方法来使它运行。首先删除更改后的组件,然后运行调用组件,此时会报告DLL未找到。然后再放回相同的DLL文件,调用组件就能正常工作 :)
我想我可能缺少.NET内部的某些知识。
如果需要更多信息,请告诉我。