【问题标题】:Could not load file or assembly 'MySql.Web无法加载文件或程序集'MySql.Web
【发布时间】:2013-12-04 08:19:35
【问题描述】:

尝试使用带有 mvc4 项目的 mysql db 并遇到此错误。

该错误在 web.config 中的会员提供程序处触发

 <membership defaultProvider="MySqlMembershipProvider">
  <providers>
    <clear />
    <add name="MySqlMembershipProvider"
         type="MySql.Web.Security.MySQLMembershipProvider,
     MySql.Web, Version=6.5.4.0, PublicKeyToken=c5687fc88969c44d"
     autogenerateschema="true"
     connectionStringName="MySqlConnectionString"
     enablePasswordRetrieval="false"
     enablePasswordReset="true"
     requiresQuestionAndAnswer="false"
     requiresUniqueEmail="false"
     passwordFormat="Hashed"
     maxInvalidPasswordAttempts="5"
     minRequiredPasswordLength="6"
     minRequiredNonalphanumericCharacters="0"
     passwordAttemptWindow="10"
     passwordStrengthRegularExpression=""
     applicationName="/" />
  </providers>
</membership>

我的参考中有 MySql.Data、MySql.Data.Entity 和 MySql.Web,它们都添加了 nuget install-Package 命令。怎么还是找不到?是不是和我的机器上没有直接安装一些 MySql 的东西有关?

【问题讨论】:

    标签: c# mysql asp.net-mvc-4 web-config


    【解决方案1】:

    安装 MySQl 连接器并添加它的引用。这对我有帮助。

    你可以从Here找到MySQL的连接器

    【讨论】:

    • 它说我已经有了对 MySql.web 的引用,这是有道理的,因为我在使用 NuGet 安装软件包时得到了该引用
    • 您是否添加了对 dll 文件的引用?并确保此处提到的版本与您引用的 dll 相同。
    • 我有,看来问题不在于缺少参考资料,而是参考资料指向不同的版本。我没有意识到这一点,因为我已经使用 NuGet Install-Pacakge 命令获得了参考
    • 也为我工作。甚至不必重新加载我的项目。
    【解决方案2】:

    原来使用 NuGet 获取引用有不同的版本。

    MySql.Data 和 MySql.Data.Entity 版本为 5.x.x.x,而 MySql.web 版本为 7.4.0

    指定版本,像这样

    Install-Package MySql.Data -Version 6.7.4
    

    MySql.Data 和 MySql.Data.Entity 使网站运行无误。

    安装 MySql 连接器并从 6.7.4 版本引用这 2 个 dll 也可以。

    简短的回答,问题源于这些 dll 的版本不同,而不是因为其中一个缺失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-17
      相关资源
      最近更新 更多