PostSharp与Caliburn.Micro在构建上抛出异常

时间:2013-08-02 01:41:39

标签: wpf c#-4.0 caliburn.micro postsharp

我刚刚将PostSharp 3.0.32.0安装到我的.net 4.5 WPF解决方案中,我收到以下异常:

Error 13 Unhandled exception (3.0.32.0, 32 bit, CLR 4.5, Release): PostSharp.Sdk.CodeModel.BindingException: Cannot find a method named 'NotifyOfPropertyChange' with signature '(string) : void' in scope 'Caliburn.Micro.Conductor`1::Collection::OneActive' (module = 'Caliburn.Micro.dll').
   at PostSharp.Sdk.CodeModel.Collections.MethodDefDeclarationCollection.GetMethod(String name, IMethodSignature signature, BindingOptions bindingOptions)
   at PostSharp.Sdk.CodeModel.MethodRefDeclaration.GetMethodDefinition(BindingOptions bindingOptions)
   at PostSharp.Sdk.Extensibility.Tasks.IndexGenericInstancesTask.Execute()
   at PostSharp.Sdk.Extensibility.Project.ExecutePhase(String phase)
   at PostSharp.Sdk.Extensibility.Project.Execute()
   at PostSharp.Hosting.PostSharpObject.ExecuteProjects()
   at PostSharp.Hosting.PostSharpObject.InvokeProject(ProjectInvocation projectInvocation) C:\Projects\nextgen\NextGen.Client\POSTSHARP NextGen.Client

我们正在使用带有Autofac的Caliburn.Micro 1.5.2。我们也在使用PropertyChanged.Fody和Validar.Fody。

我已经创建了一些基本方面并应用了它们,但后来删除了它们。除非我在WPF项目上禁用PostSharp,否则会出现错误。

我试图在一个使用Caliburn.Micro.Start创建的简单示例项目中进行复制(仅稍微修改以使用OneActive导体),安装了PostSharp和PropertyChanged.Fody,但无济于事 - 它构建没有问题。< / p>

之前有没有人遇到过这个问题?

干杯,

安德鲁

2 个答案:

答案 0 :(得分:1)

找出postharp为什么首先要查找NotifyPropertyChanged方法。 Fody应该是那样做的人。您是否已将PostSharp配置为执行NotifyPropertyChanged以及Fody?

我的猜测是问题在于使用2个IL重写器并且它们不能很好地协同工作。我会删除PostSharp并仅使用Fody。

答案 1 :(得分:0)

在这种情况下,我将通过在自己的程序集中隔离PostSharp代码来解决问题。