c# - IFormFile 未从程序集 'Microsoft.AspNetCore.Http 3.0' 加载类型 Microsoft.AspNetCore.Http.Internal.FormFile'

标签 c# asp.net-core

使用 IFormFile 时,我在运行时收到此错误:

Could not load type 'Microsoft.AspNetCore.Http.Internal.FormFile' from assembly 'Microsoft.AspNetCore.Http, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.


我试过添加包:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" />
<PackageReference Include="Microsoft.AspNetCore.Http.Features" Version="3.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="3.0.0" />
<PackageReference Include="Microsoft.Net.Http.Headers" Version="2.2.0" />
using Microsoft.AspNetCore.Http.Internal;
IFormFile f = new FormFile(memoryStream, 0, memoryStream.Length, "test", "test.pdf");
存在 FormFile 的文档 Aspnetcore 3.0 .但是在检查我的 sdk 时,而不是使用 3.0.0.它仅在 .net core 2.2 中可用。我安装了 2.2 和 3.0 版本
区域程序集 Microsoft.AspNetCore.Http,版本=2.2.0.0,文化=中性,PublicKeyToken=adb9793829ddae60
// C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.http\2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Http.dll
#endregion

using System.IO;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Threading.Tasks;

namespace Microsoft.AspNetCore.Http.Internal
{
    public class FormFile : IFormFile
}

最佳答案

我遇到了同样的错误,找不到与此错误直接相关的任何内容,经过两天与此问题的斗争,我终于找到了解决方案。
当您尝试实例化 FormFile 或 FormFileCollection 类时会出现此问题。如果项目没有对 Microsoft.AspNetCore.App 的框架引用,则会抛出上述错误。
解决方案:
Microsoft.AspNetCore.App 无论哪个项目实例化 FormFile 或 FormFileCollection 类,都需要手动添加框架引用。

 <ItemGroup>
     <FrameworkReference Include="Microsoft.AspNetCore.App" />
 </ItemGroup>
https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.1&tabs=visual-studio#framework-reference

关于c# - IFormFile 未从程序集 'Microsoft.AspNetCore.Http 3.0' 加载类型 Microsoft.AspNetCore.Http.Internal.FormFile',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58904234/

相关文章:

c# - 在换行面板中设置最大行数

c# - 从 .NET Core 2.2 迁移到 3.1 后,ASP.NET Core 自定义 AuthenticationHandler 中不会忽略 AllowAnonymous

c# - Asp.net core默认路由

c# - 直接从数据库返回 IEnumerable 或之前使用 ToListAsync

c# - Swagger C# 枚举生成 - 底层 int 值与原始枚举不匹配

c# - 如何在 ASP.NET 样板中设置社交登录?

c# - 错误 : Cannot find all types required by the 'async' modifier. 您是否针对错误的框架版本,或缺少对程序集的引用?

c# - 哪个 Linux 发行版最适合在虚拟机中开发 Mono 应用程序?

c# - 如何用双引号替换文件中的字符串

asp.net - Blazor Component参数不应在其组件之外设置