项目“ ClassLibrary1.csproj”的目标是“ netstandard2.1”。面向'.NETFramework,Version = v4.8'的项目无法引用它

时间:2019-08-07 06:02:52

标签: c# .net .net-standard .net-4.8 .net-standard-2.1

我在目标netstandard2.1中有一些类库项目。

当我在目标.NET Framework v4.8中引用我的WPF项目时,在构建时出现错误:

  

严重性代码描述项目文件行抑制状态   错误项目'.. \ ClassLibrary1 \ ClassLibrary1.csproj'目标为'netstandard2.1'。面向'.NETFramework,Version = v4.8'的项目无法引用它。 WpfApp1

我该怎么办?

更新: 我阅读了this关于引用netcoreapp2.1的问题,并在该答案中讲述了添加netstandar2.1的问题。但是我的库已经在目标netstandard2.1中!

2 个答案:

答案 0 :(得分:2)

  

我该怎么办?

  1. 如果您的库不需要最新功能,请使用.net standard 2.0
    通常,图书馆应致力于支持最低版本。

  1. 将WPF应用程序移植到.NET Core 3 (预览)

更新

.Net Core 3已发布,您也可以使用它的稳定版本。

答案 1 :(得分:2)

根据compatibility matrix,我的NetFramework 4.8项目应该不能引用NetStandard 2以前的库。因此,import { Injectable } from '@angular/core'; import { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; import { AuthService } from '../auth-service/auth-service.service'; import { Observable } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class RedirectGuardService implements CanActivate { constructor( private router: Router, private authService: AuthService ) {} canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) : Observable<boolean> | Promise<boolean> | boolean { const user = this.authService.userVal; if (user) { this.router.navigate(['/'+ user.role]); return true; } this.router.navigate(['/login'], { queryParams: { returnUrl: state.url }}); return false; } } 的答案是正确的。

here中列出的版本代表NuGet用来确定给定.NET标准库是否适用的规则。

.NET Framework将不支持.NET Standard 2.1或任何其他更高版本。有关更多详细信息,请参见此blog post