PostSharp 1.5,.net 3.5和Visual Studio 2012

时间:2013-01-31 13:28:04

标签: .net visual-studio-2012 postsharp

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

我们有一个.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 – 

1 个答案:

答案 0 :(得分:1)

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