在一个组件中有一个可选参数并且调用它的另一个组件没有构建时,我收到 System.MissingMethodException 错误,因为它使用旧数量的参数调用它。
只有添加了参数的组件才会构建为补丁部署。调用组件是旧的,因为它没有变化。
当调用组件运行时,它会给出错误:
异常信息
异常类型:System.MissingMethodException 消息:找不到方法:'LabelURLs IPSD.BnB.Transaction.Postage.GetLabelURLs(System.String)'。数据:System.Collections.ListDictionaryInternal TargetSite:无效 GenerateScanForm(Int32,Int32)HelpLink:NULL 来源:BnBDispenseQueueProcess
据我所知,它不应该引发错误,因为新参数是可选的。另一件事调用组件(EXE)作为Windows服务运行。
我们找到了一个非常有线的解决方法来让它运行。通过删除更改的组件一次并运行调用组件,它会说找不到 DLL。再次放置相同的DLL并调用组件可以正常工作:)。
我想我错过了.net的一些内部结构。
如果需要更多信息,请告诉我。