PostSharp不会在最新的Visual Studio(16.8.1)中构建



由于升级到最新的Visual Studio(16.8.1(,我无法再编译任何使用PostSharp的项目。

我收到以下构建错误(适用于PostSharp v6.7.11和6.8.1-审查(:

1>POSTSHARP : error : error: Unhandled exception (PostSharp.Compiler.Hosting.CommandLine.dll 6.8.1 release | .NET Core 5.0.0 (X64)): Could not load file or assembly 'NuGet.Versioning, Version=5.8.0.6823, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified. See below for details.
1>POSTSHARP : error : System.IO.FileNotFoundException: Could not load file or assembly 'NuGet.Versioning, Version=5.8.0.6823, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.
1>POSTSHARP : error : File name: 'NuGet.Versioning, Version=5.8.0.6823, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
1>POSTSHARP : error : at PostSharp.Sdk.Extensibility.Platforms.SdkAssemblyRepository..ctor(String installedFrameworkDocumentPath, String visualStudioVersionString)
1>POSTSHARP : error : at PostSharp.Sdk.Extensibility.PlatformContext..ctor(Project project, String installedFrameworkDocumentPath, String visualStudioVersion) in C:srcPostSharp-68PublicCorePostSharp.Compiler.EngineSdkExtensibilityPlatformContext.cs:line 103
1>POSTSHARP : error : at PostSharp.Sdk.Extensibility.Project.Initialize(ProjectConfiguration[] projectConfigurations, ProjectInvocationParameters projectInvocationParameters) in C:srcPostSharp-68PublicCorePostSharp.Compiler.EngineSdkExtensibilityProject.cs:line 903
1>POSTSHARP : error : at PostSharp.Sdk.Extensibility.Project.Initialize(ProjectInvocationParameters projectInvocationParameters) in C:srcPostSharp-68PublicCorePostSharp.Compiler.EngineSdkExtensibilityProject.cs:line 599
1>POSTSHARP : error : at PostSharp.Sdk.Extensibility.Project.LoadProject(ProjectInvocationParameters projectInvocationParameters, Domain& domain) in C:srcPostSharp-68PublicCorePostSharp.Compiler.EngineSdkExtensibilityProject.cs:line 570
1>POSTSHARP : error : at PostSharp.Hosting.PostSharpObject.InvokeProject(ProjectInvocation projectInvocation) in C:srcPostSharp-68PublicCorePostSharp.Compiler.HostingPostSharpObject.cs:line 256
1>POSTSHARP : error : at PostSharp.Hosting.Program.ExecuteImpl() in C:srcPostSharp-68PublicCorePostSharp.Compiler.HostingProgram.cs:line 958

请注意,我没有将任何项目转换为.NET 5.0。我刚刚将Visual Studio更新到最新版本。

有人知道如何解决这个问题吗?感谢

这是通过在构建前清洁解决方案解决的。是的,我本应该立即尝试,但在大约70个项目的解决方案中,这个PostSharp错误是唯一的新构建错误。

通过在与.sln文件相同的目录中添加一个名为global.json:的新文件来更改用于构建项目的SDK

{
"sdk": {
"version": "3.1.404",
"rollForward": "latestPatch"
}
}

在此处安装最新版本的.Net核心SDK:https://dotnet.microsoft.com/download/dotnet-core/3.1

Postsharp 6.7不支持.Net 5 SDK。

有关更多信息,请参阅PostSharp的这篇文章:https://blog.postsharp.net/post/updating-to-vs-168-breaks-build.html

感谢Daniel Balas回答这个问题。https://stackoverflow.com/a/65087786/1247572

最新更新