0

我刚刚将 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,但无济于事 - 它构建没有问题。

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

干杯,

安德鲁

4

2 回答 2

1

首先弄清楚为什么 postsharp 正在寻找 NotifyPropertyChanged 方法。福迪应该是这样做的人。您是否已将 PostSharp 配置为执行 NotifyPropertyChanged 实现以及 Fody?

我的猜测是问题在于使用了 2 个 IL 重写器,而它们一起玩得不好。我会删除 PostSharp 并仅使用 Fody。

于 2013-08-02T02:16:34.607 回答
0

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

于 2013-08-02T04:16:05.727 回答