无法使用 Postsharp 4.1.14 构建项目

Can't build a project with Postsharp 4.1.14

我有一个引用 postsharp 4.1.14 的项目。当我构建项目时发生错误。 Postsharp 由 nuget 包安装。计算机上安装了 .net 4.0 版,但 Microsoft.Build.Utilities.ToolLocationHelper.GetPlatformSDKLocation 方法来自 .net 4.5。我可以使用不同版本的postsharp吗?还有其他方法可以解决我的问题吗?

错误 1 ​​"PostSharp30GetInstalledFrameworks" 任务意外失败。 System.MissingMethodException:未找到方法:'System.String Microsoft.Build.Utilities.ToolLocationHelper.GetPlatformSDKLocation(System.String, System.Version)'。 在 PostSharp.MSBuild.PostSharp30GetInstalledFrameworks.b__5(<>f__AnonymousType02 <>h__TransparentIdentifier0) at System.Linq.Enumerable.<>c__DisplayClass123.b__11(TSource x) 在 System.Linq.Enumerable.<>c__DisplayClass123.<CombineSelectors>b__11(TSource x) at System.Linq.Enumerable.<>c__DisplayClass123.b__11(TSource x) 在 System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() 在 System.Xml.Linq.XContainer.AddContentSkipNotify(对象内容) 在 PostSharp.MSBuild.PostSharp30GetInstalledFrameworks.Execute() 在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 在 Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost,TaskLoggingContext taskLoggingContext,TaskHost taskHost,ItemBucket bucket,TaskExecutionMode howToExecuteTask,Boolean& taskResult)ConsoleApplication1

PostSharp 4.x 至少需要 Visual Studio 2012 和 .NET Framework 4.5 安装在开发机器或构建服务器 (http://doc.postsharp.net/requirements) 上。您的项目仍然可以面向 .NET 4.0,仅在构建时需要 .NET 4.5。

如果您只安装了旧版本的 VS 和 .NET,则可以使用 PostSharp 3.x,它仍然受支持并可与 VS 2010 和 .NET 4.0 一起使用。