1

我将此作为类似问题的答案发布,但没有得到回应,所以在这里试试运气。

我们有一个 PostSharp 1.5 运行良好的 .net 2.0 程序集。我们已获准升级到使用 VS2012。

该项目已由 VS2012 自动转换,但出现错误。我已经确保在所有项目中都以 .net 3.5 为目标,但我仍然得到

 Error   27  Unhandled exception: PostSharp.CodeModel.BindingException: Cannot find the type 'System.Func`2' in assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
 at PostSharp.CodeModel.AssemblyEnvelope.GetTypeDefinition(String typeName, BindingOptions bindingOptions)
 at PostSharp.CodeModel.Domain.FindTypeDefinition(String assemblyQualifiedTypeName, BindingOptions bindingOptions)
 at PostSharp.CodeModel.TypeRefDeclaration.GetTypeDefinition(BindingOptions bindingOptions)
 at PostSharp.CodeModel.TypeSpecDeclaration.GetTypeDefinition(BindingOptions bindingOptions)
 at PostSharp.Extensibility.Tasks.IndexGenericInstancesTask.Execute()
 at PostSharp.Extensibility.Project.ExecutePhase(String phase)
 at PostSharp.Extensibility.Project.Execute()
 at PostSharp.Extensibility.PostSharpObject.ExecuteProjects()
 at PostSharp.Extensibility.PostSharpObject.InvokeProject(ProjectInvocation projectInvocation)
 at PostSharp.MSBuild.PostSharpRemoteTask.Execute(PostSharpTaskParameters parameters, TaskLoggingHelper log)

我检查了对 System.Core 的引用,它肯定指向版本 3.5.0.0,所以上面的 4.0.0.0 引用也让我有些困惑。

我读过 PostSharp 1.5 在针对 3.5 和 4.0 的 VS 2010 中运行良好。但是有些人不得不在项目文件等中做一些魔法黑客。

有没有人如上所述设置环境?(.net 3.5、VS2012 和 PostSharp 1.5)

我已经在寻找替代方案,并且 PostSharp 2.0 的社区版本看起来像是要走的路。但与此同时,这可以在当前环境下完成吗?黑客需要什么?

干杯

果酱

更新:这里的一个人认为这可以通过破解 MSBuild 工具集来实现。任何人都可以解释一下吗?

更新:在下面添加属性组代码部分后,VS 2012 给了我这个:

Error   26  The PostSharp build step failed (exit code 9009). See previous errors or the build log for details. Connectivity.Service.Client.Acl – 
4

1 回答 1

1

该错误是由于 PostSharp 1.5 中的缺陷已在 PostSharp 2.0 中解决。由于 Microsoft 尚未使用类型转发器,因此在维护 PostSharp 1.5 时该错误并未暴露。

于 2013-05-02T08:35:45.633 回答