我在一个类似的问题中将此作为答案发布但没有得到回应,所以在这里试试我的运气。
我们有一个.net 2.0程序集,PostSharp 1.5正好运行。我们已经获准升级到使用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在VS 2010中针对3.5和4.0正常工作。但有些人不得不在项目文件等中做一些神奇的hackery。
有没有人设置如上所述的环境? (.net 3.5,VS2012和PostSharp 1.5)
我已经在研究替代方案,PostSharp 2.0的社区版本看起来就像是要走的路。但与此同时,这可以通过当前的环境来完成,还需要什么呢?
干杯
JAM
更新:其中一个人认为通过攻击MSBuild ToolSet可以实现这一点。任何人都可以放弃任何光明吗?
更新:在添加下面的属性组代码部分后,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 –
答案 0 :(得分:1)
错误是由PostSharp 1.5中的一个缺陷导致的,该缺陷已在PostSharp 2.0中解决。由于Microsoft尚未使用类型转发器,因此在维护PostSharp 1.5时未暴露该错误。