azure之ASP.NET 5/Azure 错误 : FileNotFoundException: Could not load file or assembly System. Data.SqlClient

jirigala 阅读:111 2025-06-02 22:19:02 评论:0

我正在使用 VS2015 将 ASP.NET 5 应用程序部署到 Azure。成功部署并在浏览器中打开我的网站后,我收到错误:

FileNotFoundException:无法加载文件或程序集“System.Data.SqlClient,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。系统找不到指定的文件。 我的项目中没有直接引用该程序集。它是通过 EntityFramework.MicrosoftSqlServer 程序集的间接依赖。

我在使用 ASP.NET 4 时遇到了类似的问题,解释如下:Error: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient' 当时,名为“可怕的黑客”的解决方案对我有用。 :)

您是否知道可能导致该问题的原因以及如何解决该问题?

这是我的网络应用程序project.json的内容:

{ 
    "userSecretsId": "aspnet5-MyProject.Web-<A guid goes here>", 
    "version": "1.0.0-*", 
    "compilationOptions": { 
        "emitEntryPoint": true 
    }, 
 
    "dependencies": { 
        "EntityFramework.Commands": "7.0.0-rc1-final", 
        "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final", 
        "Microsoft.AspNet.Authentication.Cookies": "1.0.0-rc1-final", 
        "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-rc1-final", 
        "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final", 
        "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final", 
        "Microsoft.AspNet.Mvc": "6.0.0-rc1-final", 
        "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final", 
        "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final", 
        "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final", 
        "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final", 
        "Microsoft.Extensions.CodeGenerators.Mvc": "1.0.0-rc1-final", 
        "Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final", 
        "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final", 
        "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc1-final", 
        "Microsoft.Extensions.Logging": "1.0.0-rc1-final", 
        "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final", 
        "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final", 
        "Microsoft.Framework.CommandLineUtils.Sources": "1.0.0-beta5", 
        "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final", 
        "MyProject.Data": "1.0.0-*", 
        "System.Data.SqlClient": "4.0.0-beta-23516" <-- I've tried with this explicit dependency here 
     }, 
 
     "commands": { 
        "web": "Microsoft.AspNet.Server.Kestrel", 
        "ef": "EntityFramework.Commands" 
     }, 
 
     "frameworks": { 
         "dnxcore50": { } 
     }, 
 
     "exclude": [ 
        "wwwroot", 
        "node_modules" 
     ], 
     "publishExclude": [ 
         "**.user", 
         "**.vspscc" 
     ], 
     "scripts": { 
        "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ] 
      } 
} 

以及 MyProject.Web 所依赖的 MyProject.Data 项目的 project.json:

{ 
  "version": "1.0.0-*", 
  "description": "MyProject.Data Class Library", 
  "authors": [ "f012rt" ], 
  "tags": [ "" ], 
  "projectUrl": "", 
  "licenseUrl": "", 
  "frameworks": { 
    "dnxcore50": { 
      "dependencies": { 
        "Microsoft.CSharp": "4.0.1-beta-23516", 
        "System.Collections": "4.0.11-beta-23516", 
        "System.Linq": "4.0.1-beta-23516", 
        "System.Runtime": "4.0.21-beta-23516", 
        "System.Threading": "4.0.11-beta-23516" 
      } 
    } 
  }, 
  "commands": { 
    "ef": "EntityFramework.Commands" 
  }, 
  "dependencies": { 
    "EntityFramework.Commands": "7.0.0-rc1-final", 
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final", 
    "EntityFramework.Core": "7.0.0-rc1-final", 
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final", 
    "System.Runtime.Serialization.Primitives": "4.1.0-beta-23516", 
    "System.Data.SqlClient": "4.0.0-beta-23516" <-- I've tried with this explicit dependency here 
  } 
} 

我已尝试显式指定缺少的依赖项,正如您从我的project.json 文件中看到的那样。我可以确认包 "System.Data.SqlClient": "4.0.0-beta-23516"位于我的 [approot]\packages 文件夹中。包文件夹在我的本地计算机上看起来与此完全相同。我尝试在新创建的 Web 应用程序上进行部署,以避免旧部署引起的任何问题。错误还是一样。

请您参考如下方法:

我认为您希望将 System.Data.SqlClient 依赖项从 dependencies 移至 frameworks\dnxcore50\dependencies 中,如下所示:

"frameworks": { 
    "dnx451": { }, 
    "dnxcore50": { 
      "dependencies": { 
        "System.Data.SqlClient": "4.0.0-beta-23516" 
      } 
     } 
  } 


标签:Exception
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号