gpt4 book ai didi

.net - Mac OS X Mono 和 MySql 连接器问题

转载 作者:行者123 更新时间:2023-12-01 01:39:33 24 4
gpt4 key购买 nike

我下载了mysql-connector-net-6.4.3-noinstall.zip,解压mysql.data.dll并将其重命名为MySql.Data.dll:

$ cd v2/
$ ls
mysql.data.cf.dll mysql.data.dll mysql.data.entity.dll mysql.visualstudio.dll mysql.web.dll
$ mv mysql.data.dll MySql.Data.dll
$ sudo gacutil /i MySql.Data.dll
Password:
Installed MySql.Data.dll into the gac (/Library/Frameworks/Mono.framework/Versions/2.10.4/lib/mono/gac)

我在/Library/Frameworks/Mono.framework/Versions/2.10.4/lib/mono/2.0 中创建一个指向 MySql.Data.dll 的符号链接(symbolic link):
$ sudo ln -s ../gac/MySql.Data/6.4.3.0__c5687fc88969c44d/MySql.Data.dll MySql.Data.dll

并在/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig 中创建一个包配置文件,以便我可以从 MonoDevelop 中引用包:
Name: MySql.Data
Description: MySql.Data
Version: 6.4.3.0
Libs: -r:/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/2.0/MySql.Data.dll

然后我创建一个新的控制台项目,添加对 MySql.Data 的引用并构建。编译器失败,出现以下异常:
Unhandled Exception: System.IO.FileLoadException: The assembly name is invalid.
at System.Reflection.AssemblyName..ctor (System.String assemblyName) [0x00000] in <filename unknown>:0
at Mono.CSharp.ImportedAssemblyDefinition.ReadAttributes () [0x00000] in <filename unknown>:0
at Mono.CSharp.MetadataImporter.GetAssemblyDefinition (System.Reflection.Assembly assembly) [0x00000] in <filename unknown>:0
at Mono.CSharp.ReflectionImporter.ImportAssembly (System.Reflection.Assembly assembly, Mono.CSharp.RootNamespace targetNamespace) [0x00000] in <filename unknown>:0
at Mono.CSharp.DynamicLoader.LoadReferences (Mono.CSharp.ModuleContainer module) [0x00000] in <filename unknown>:0
at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0
at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileLoadException: The assembly name is invalid.
at System.Reflection.AssemblyName..ctor (System.String assemblyName) [0x00000] in <filename unknown>:0
at Mono.CSharp.ImportedAssemblyDefinition.ReadAttributes () [0x00000] in <filename unknown>:0
at Mono.CSharp.MetadataImporter.GetAssemblyDefinition (System.Reflection.Assembly assembly) [0x00000] in <filename unknown>:0
at Mono.CSharp.ReflectionImporter.ImportAssembly (System.Reflection.Assembly assembly, Mono.CSharp.RootNamespace targetNamespace) [0x00000] in <filename unknown>:0
at Mono.CSharp.DynamicLoader.LoadReferences (Mono.CSharp.ModuleContainer module) [0x00000] in <filename unknown>:0
at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0
at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0

我还尝试直接引用程序集,结果相同。

有什么建议吗?

我可以将我的项目定位到 .NET Framework v2.0 并使用 gmcs 构建 OK,但不能使用 dmcs 构建 .NET 3.5 或 4.0。

最佳答案

更新 : 我升级到单声道 2.10.5。我能够为 .NET/Mono 加载 6.4.4.0 版本的 MySql 连接器。似乎现在正在工作。

我修改了 mcs 以在编译期间通过“-r”加载时显示 AssemblyName 值。在这种情况下,我使用的是连接器版本 6.3.7.0 和单声道版本 2.10.4。

mcs Main.cs -r:System.Data.dll -r:/usr/lib/mono/4.0/MySqlData.dll

Unhandled Exception: System.IO.FileLoadException: The assembly name is invalid: MySql.Data.Tests, PublicKey = 0024000004800000940000000602000000240000525341310004000001000100d973bda91f71752c78294126974a41a08643168271f65fc0fb3cd45f658da01fbca75ac74067d18e7afbf1467d7a519ce0248b13719717281bb4ddd4ecd71a580dfe0912dfc3690b1d24c7e1975bf7eed90e4ab14e10501eedf763bff8ac204f955c9c15c2cf4ebf6563d8320b6ea8d1ea3807623141f4b81ae30a6c886b3ee1
at System.Reflection.AssemblyName..ctor (System.String assemblyName) [0x00000] in <filename unknown>:0
at IKVM.Reflection.AssemblyName..ctor (System.String assemblyName) [0x00000] in <filename unknown>:0
at Mono.CSharp.ImportedAssemblyDefinition.ReadAttributes () [0x00000] in <filename unknown>:0

似乎名称不匹配(“MySql.Data”与“MySql.Data.Tests”)。

关于.net - Mac OS X Mono 和 MySql 连接器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7181420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com