【发布时间】:2023-02-22 06:00:47
【问题描述】:
我们有一个内部构建的类库,除其他外,它公开了一些专门用于授权其他请求(获取/刷新令牌等)的 HTTP 客户端。到目前为止,它已构建为netstandard2.1,我们已经能够毫无问题地保持依赖项最新。
我们最近将一个额外的身份验证客户端类型从一个消费应用程序移植到这个库中。现有实现让客户端被 IAsyncActionFilter 实现使用,因此它可以作为方法的属性添加:
[AttributeUsage(AttributeTargets.Method)]
public class OpaAuthAttribute : TypeFilterAttribute
{
public OpaAuthAttribute(string permission) : base(typeof(OpaAuthActionFilter))
{
Arguments = new object[] { permission };
}
}
这可行,但继续使用 netstandard2.1 TFM 使我们依赖于 Microsoft.AspNetCore.Mvc v2.2.0。这真的不是一个很好的前进道路,因为该项目已经存档了 4 年,并且发布时它依赖于几个具有已知安全漏洞的库版本:
。
所以,我正在尝试找出可升级实现的路径,这意味着转到net6.0。我可以通过更改以下内容来获得所有依赖项:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
...
对此:
<Project Sdk="Microsoft.NET.Sdk.Web"> <!-- Changed -->
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <!-- Changed -->
...
但我仍然在构建输出中收到以下错误:
Program does not contain a static 'Main' method suitable for an entry point
是否可以创建一个使用最新版本的 ASP.Net MVC SDK 的类库?我错过了什么?
【问题讨论】:
标签: asp.net-core .net-6.0 class-library