尝试保存图像 .NET Core 时出现编译错误 - 参数类型“System.IO.FileStream”不可分配给参数类型“System.IO.Stream”

Lin*_*erg 5 c# io resharper .net-core asp.net-core

图片

  [HttpPost]
    public async Task<IActionResult> Upload(string memberNumber, IFormFile file)
    {
        var uploadsFolderPath = Path.Combine(_host.WebRootPath, "uploads");

        var fileName = Guid.NewGuid() + Path.GetExtension(file.FileName);
        var filePath = Path.Combine(uploadsFolderPath, fileName);

        using (var stream = new FileStream(filePath, FileMode.Create))
        {
             // Here's the compilation error
            await file.CopyToAsync(stream);
        }

        var photo = new Photo(fileName);
        var member = _unitOfWork.Members.GetByMemberNumber(memberNumber);
        member.Photo = photo;
        _unitOfWork.Complete();

        return Ok(_mapper.Map<Photo, PhotoResource>(photo));
    }
Run Code Online (Sandbox Code Playgroud)

我在尝试保存图像 .NET Core 时遇到编译错误 -

Argument type 'System.IO.FileStream' is not assignable to parameter type 'System.IO.Stream' 
Run Code Online (Sandbox Code Playgroud)

这是为什么?我应该使用另一个流编写器吗?不知道有没有包丢失?

.csproj 参考资料:

  <ItemGroup>
<PackageReference Include="AutoMapper" Version="6.1.0" />
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="2.0.1" />
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Cookies" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.2" PrivateAssets="All" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.2" PrivateAssets="All" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.1" PrivateAssets="All" />
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.1" PrivateAssets="All" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.2" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
Run Code Online (Sandbox Code Playgroud)

FileStream 元数据顶部:

#region Assembly System.IO.FileSystem, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a//C:\Users\Leon\.nuget\packages\system.io.filesystem\4.3.0\ref\netstandard1.3\System.IO.FileSystem.dll#endregion
Run Code Online (Sandbox Code Playgroud)

Vol*_*kan 4

对于我的情况,我遇到了类似的问题。通过将Resharper更新到版本2017.2 EAP 3,它解决了我的问题。如果您也在使用 Resharper,请尝试更新它:

下载并安装 2017.2 EAP 3 https://www.jetbrains.com/resharper/eap/

            [HttpPost]
            public async Task<IActionResult> UploadFile(IFormFile file)
            {
                string filePath = "UploadedFiles/" + Guid.NewGuid() + Path.GetExtension(file.FileName);
                using (var fileStream = new FileStream(filePath, FileMode.Create))
                {
                   await file.CopyToAsync(fileStream);
                }
                return Json("file uploaded successfully");
            }
Run Code Online (Sandbox Code Playgroud)