Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DynamicRouteValueTransformer不存在_C#_Asp.net Core_.net Core_Asp.net Core Mvc - Fatal编程技术网

C# DynamicRouteValueTransformer不存在

C# DynamicRouteValueTransformer不存在,c#,asp.net-core,.net-core,asp.net-core-mvc,C#,Asp.net Core,.net Core,Asp.net Core Mvc,当我尝试从类库中的类DynamicRouteValueTransformer继承时,我得到了一个缺少引用的错误,但是当我从我的MVC应用程序继承时,它工作正常 public class ProductRouteTransformer : Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer DynamicRouteValueTransformer位于命名空间Microsoft.AspNetCore.Mvc.Routing中,

当我尝试从类库中的类DynamicRouteValueTransformer继承时,我得到了一个缺少引用的错误,但是当我从我的MVC应用程序继承时,它工作正常

public class ProductRouteTransformer : Microsoft.AspNetCore.Mvc.Routing.DynamicRouteValueTransformer
DynamicRouteValueTransformer位于命名空间Microsoft.AspNetCore.Mvc.Routing中,该命名空间是Microsoft.AspNetCore.Mvc.Core.dll的一部分。我已经使用Nuget将DLL添加到类库中,并且可以看到它已安装,但仍然收到一个缺少引用的错误。名称空间中缺少该类

我正在使用.NETCore3.1

csproj如下所示:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="AutoMapper" Version="9.0.0" />
    <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="7.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />
    <PackageReference Include="Microsoft.AspNetCore.Routing" Version="2.2.2" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.0" />
    <PackageReference Include="NLog" Version="4.6.8" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="Database\EntityUtils\" />
  </ItemGroup>


</Project>

netcoreapp3.1
最近介绍的中有一个主题非常详细:

随着.NET Core 3.0的发布,许多ASP.NET Core程序集不再作为包发布到NuGet

如果您查看.csproj的内容,就会发现您添加了对一些
Microsoft.AspNetCore.*
软件包的
2.2.x
版本的引用。我确信您打算参考这些软件的
3.1.x
版本,但是,正如上面引用的文档所示,这些软件包不再为3.0+生产

文档中接下来的几行解释了这里发生的事情:

相反,这些程序集包含在
Microsoft.AspNetCore.App
共享框架中,该框架与.NET Core SDK和运行时安装程序一起安装

从.NET Core 3.0开始,使用
Microsoft.NET.Sdk.Web
MSBuild Sdk的项目隐式引用共享框架。使用
Microsoft.NET.Sdk
Microsoft.NET.Sdk.Razor
Sdk的项目必须引用ASP.NET核心才能在共享框架中使用ASP.NET核心API

由于您的项目引用的是
Microsoft.NET.Sdk
,因此需要如上所述添加
FrameworkReference
,并删除那些旧的
PackageReference
s:


netcoreapp3.1
请注意,并非所有包都已折叠到共享框架中。例如,
Microsoft.EntityFrameworkCore.SqlServer仍然作为NuGet包提供