1

我正在尝试将在 mod_mono 下运行的 ASP .NET 2.0 应用程序升级到 4.0。2.0 应用程序使用针对 2.x 平台构建的 DLL 的 6.3.5 版本,并且运行良好。

以下是迄今为止我尝试过的连接器 DLL 版本:

  • 6.3.5 - 2x
  • 6.3.5 - 4 倍
  • 6.5.4 - 4x

我正在添加 mono/4.0/machine.config 像这样:

<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL"
         type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>

PublicKeyToken 对于所有不同的版本似乎都是相同的。

但是,当我运行该应用程序时,我得到了这个:

Unhandled Exception: System.IO.FileLoadException: The assembly name is invalid.
  at System.Reflection.AssemblyName..ctor (System.String assemblyName) [0x00045] in /root/mono-2.10.1/mcs/class/corlib/System.Reflection/AssemblyName.cs:93 
  at Mono.CSharp.ImportedAssemblyDefinition.ReadAttributes () [0x000c5] in /root/mono-2.10.1/mcs/mcs/import.cs:1522 
  at Mono.CSharp.MetadataImporter.GetAssemblyDefinition (System.Reflection.Assembly assembly) [0x00028] in /root/mono-2.10.1/mcs/mcs/import.cs:821 
  at Mono.CSharp.ReflectionImporter.ImportAssembly (System.Reflection.Assembly assembly, Mono.CSharp.RootNamespace targetNamespace) [0x00000] in /root/mono-2.10.1/mcs/mcs/reflection.cs:88 
  at Mono.CSharp.DynamicLoader.LoadReferences (Mono.CSharp.ModuleContainer module) [0x0003e] in /root/mono-2.10.1/mcs/mcs/reflection.cs:587 
  at Mono.CSharp.Driver.Compile () [0x00159] in /root/mono-2.10.1/mcs/mcs/driver.cs:1535 
  at Mono.CSharp.Driver.Main (System.String[] args) [0x0003d] in /root/mono-2.10.1/mcs/mcs/driver.cs:243 

我读过很多帖子说这个版本有效或那个版本有效,我想知道是否有人确定,所以我不会被卡住下载一大堆 dll 并在没有时从一个跳到另一个工作。

4

1 回答 1

0

我没有弄清楚这一点,但我确实看到另一篇帖子表明他们升级到更高版本的 Mono 并解决了这个问题。

我升级到2.10.9并且问题似乎已解决,并且该站点的 MVC2 版本似乎正在运行而没有问题。

我确实遇到了单声道找不到 4.0 连接器的 v6.5.4 的问题,所以我已经恢复到 6.3.5 并且已经解决了这个问题。我正在运行 SubSonic,因此可能与 SubSonic 相关联6.3.5,这就是找不到 6.5.4 的原因。

于 2012-10-12T14:41:32.920 回答