我有一个Asp.Net MVC应用程序运行框架版本.NET 4.5,我使用的是VS2017 pro版本.用户可以上传附件,包括但不限于:

  • Excel
  • 单词
  • 幻灯片演示文稿软件
  • pdf
  • jpeg
  • 巴布亚新几内亚

所以我有一个private函数,如下所示:

private string ImageExtension(string path)
{
  string noImagePath = HttpContext.Current.Server.MapPath("~/Content/images/Template/No-Image-Available-100x100.jpg");
  string fileExtension = System.IO.Path.GetExtension(path);
  switch (fileExtension)
  {
    case ".jpg":
    case ".jpeg":
    case ".gif":
    case ".巴布亚新几内亚":
       return path;
    default:
       return noImagePath;
   }
}

正如你所见,它非常简单,不做任何花哨的事情.因为我只在一个地方使用了它,所以我考虑使用本地函数的新C#7特性.所以我继续创建了我的主要函数,如下所示,并在其中添加了ImageExtension(string path)个.

public void BugInfo(HttpPostedFileBase file)
{
  if(file != null && file.ContentLength > 0)
  {
    string fileName = file.FileName;
    string directoryPath = "directory path";

     //save path of 
     string savePath = System.IO.Path.Combine(directoryPath, fileName);
     string testString = ImageExtension(savePath);

     string ImageExtension(string path)
     {
        string noImagePath = HttpContext.Current.Server.MapPath("~/Content/images/Template/No-Image-Available-100x100.jpg");
        string fileExtension = System.IO.Path.GetExtension(path);
        switch (fileExtension)
        {
          case ".jpg":
          case ".jpeg":
          case ".gif":
          case ".巴布亚新几内亚":
             return path;
          default:
             return noImagePath;
         }
      }
    }
  //save values to db here
 }

使用上面的代码,我的项目构建时没有任何错误.一旦我达到F5Ctrl + F5,我就会看到下面的错误屏幕

enter image description here

如果我判断ErrorList,看看是否有任何错误,我一点都没有,正如你在下面看到的.

enter image description here

有人能告诉我我哪里出错了吗?我是否必须更改任何设置或需要包括任何其他DLL才能使用C#7功能.

看看100答案,似乎所有的C#7功能都可以使用.净4.5

推荐答案

您需要将名为"Microsoft.Net.Compilers"的Nuget包更新到最新版本.您很可能在项目中安装了1.3.2版,但是您需要2.0.1才能使用C#7特性.或者-您可以完全删除此软件包(以及依赖它的软件包)-然后它也会工作,因为它将使用您安装的编译器,但我不建议这样做.

正如本包装说明所述:

.NET编译器软件包.引用此包将导致 要使用特定版本的C#和Visual 软件包中包含的基本编译器,与任何系统相对 已安装的版本.

这就是为什么它现在为您使用C#6编译器.

Asp.net相关问答推荐

ASP.NET MVC forEach 循环仅返回 1 个值

Windows 命令行中的/p:是什么意思

如何以编程方式设置单元格 colored颜色 epplus?

在 Web.Config 的 Location Path 元素中指定多个目录

如何在运行时判断动态数据类型的类型?

业务线应用程序:F# 会让我的生活变得轻松吗?

ASP.NET - AppDomain.CurrentDomain.GetAssemblies() - AppDomain 重新启动后缺少程序集

会话变量保存在哪里?

确定哪个 w3wp.exe 进程属于 Windows 7 / IIS7.5 中的哪个 App Pool?

.NET 上的 HTTP/2(HTTP2 或 SPDY)

使用 Moq 验证活动注册

在 aspnetcore (netcoreapp1.0) 中替代 System.Web.Security.Membership.GeneratePassword

带有 2 个提交按钮/操作的 ASP.Net MVC 4 表单

如何防止 XXE 攻击(.NET 中的 XmlDocument)

@(at) 登录文件路径/字符串

具有自定义报告创建能力的最佳 ASP.NET 报告引擎

asp.net 网站上的第一页加载缓慢

在 Visual Studio 2013 中更改项目端口号

在 ASP.NET 中获取服务器的 IP 地址?

ASP.NET Web 窗体中的 jQuery 验证插件