我有一个项目引用了postharp 4.1.14。当我构建项目时,发生了错误。 Postsharp由nuget包安装。计算机上安装了.net 4.0版,但Microsoft.Build.Utilities.ToolLocationHelper.GetPlatformSDKLocation方法来自.net 4.5。我可以使用不同版本的postharp吗?还有其他方法可以解决我的问题吗?
错误1“PostSharp30GetInstalledFrameworks”任务意外失败。
System.MissingMethodException:找不到方法:'System.String Microsoft.Build.Utilities.ToolLocationHelper.GetPlatformSDKLocation(System.String,System.Version)'。
在PostSharp.MSBuild.PostSharp30GetInstalledFrameworks.b__5(&lt;&gt; f__AnonymousType0 2 <>h__TransparentIdentifier0)
at System.Linq.Enumerable.<>c__DisplayClass12
3.b__11(TSource x)
在System.Linq.Enumerable。&lt;&gt; c__DisplayClass12 3.<CombineSelectors>b__11(TSource x)
at System.Linq.Enumerable.<>c__DisplayClass12
3.b__11(TSource x)
在System.Linq.Enumerable.WhereSelectEnumerableIterator 2.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator
2.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&amp; taskResult)ConsoleApplication1
答案 0 :(得分:1)
PostSharp 4.x至少要求在开发计算机或构建服务器(http://doc.postsharp.net/requirements)上安装Visual Studio 2012和.NET Framework 4.5。您的项目仍然可以定位.NET 4.0,仅在构建时需要.NET 4.5。
如果您只安装了旧版本的VS和.NET,那么您可以使用PostSharp 3.x,它仍然受支持并适用于VS 2010和.NET 4.0。