我们通过NuGet将南希从1.2.0更新到1.3.0。根据变化量g,似乎没有与我们的应用程序相关的中断性更改。但是,我们现在得到的是运行时错误。
方法:“Nancy.ErrorPipeline Nancy.ErrorPipeline System.Func`3)”。
在……里面
base.ApplicationStartup(container, pipelines);在我们的CustomBootstrapper。我们正在使用Nancy.Bootstrappers.Autofac,并且有一个自定义IStatusCodeHandler。
我已经清除了packages文件夹以及bin/obj文件夹,并验证了包还原后只有一个版本的Nancy。
如何解决或排除此问题?
发布于 2015-10-06 21:54:02
(警告:我从来没有用过南希。这只是一个看历史的问题。)
它看起来像是您使用的+操作符签名,与1.2.0中的内容不同:
public static ErrorPipeline operator +
(ErrorPipeline pipeline, Func<NancyContext, Exception, Response> func)在1.3.0中:
public static ErrorPipeline operator +
(ErrorPipeline pipeline, Func<NancyContext, Exception, dynamic> func)这不是一个向后兼容的变化,至少在二进制级别上是这样。就CLR而言,该签名将是
public static ErrorPipeline operator +
(ErrorPipeline pipeline, Func<NancyContext, Exception, object> func)..。因此,任何引用先前签名的二进制文件都找不到它要寻找的内容。
您的依赖关系是否也依赖于Nancy,可能在v1.2.0时?基本上,您需要找出哪些代码需要旧签名,这样您就可以使用1.3.0重新构建该代码。
https://stackoverflow.com/questions/32980300
复制相似问题