我正在努力让我的ASP.NET项目在Linux上工作。我已经在Windows上使用XSP测试了我的代码,但现在我正在努力确保我也可以在Linux上开发和测试。为此,我运行了Ubuntu,运行了MonoDevelopment和MySQL。我已经下载了最新的mysql connector/net,我想我已经正确安装了它。
没有包可以自动安装mysql connector/net进行分发,所以我从mysql网站下载了6.2.3 zip文件。现在,我已经发现了区分大小写的问题,因为zip文件包含小写的文件名,mono希望使用大写的文件名。所以我将文件名分别改为mysql.data.dll和mysql.web.dll。我还使用gacutil将两个文件安装到gac。同样,我已经将文件添加到mono-lib目录中。我的计算机上确实存在以下文件:
/usr/lib/mono/gac/MySql.Data/6.2.3.0__c5687fc88969c44d/MySql.Data.dll
/usr/lib/mono/gac/MySql.Web/6.2.3.0__c5687fc88969c44d/MySql.Web.dll
/usr/lib/mono/2.0/MySql.Data.dll
/usr/lib/mono/2.0/MySql.Web.dll
我还创建了包文件,以便可以向MonoDevelope中的程序集添加引用。文件夹/usr/lib/mono/2.0包含我添加的两个.pc文件。
MySql.Web.pc:
Name: MySql.Web
Description: ASP Membership, Role and Profile providers powered by MySQL
Version: 6.2.3
Libs: -r:/usr/lib/mono/gac/MySql.Web/6.2.3.0__c5687fc88969c44d/MySql.Web.dll
MySql.Data.pc:
Name: MySql.Data
Description: Provides connectivity to MySQL databases
Version: 6.2.3
Libs: -r:/usr/lib/mono/gac/MySql.Data/6.2.3.0__c5687fc88969c44d/MySql.Data.dll
此时,我可以在MonoDevelope内的项目中使用程序集。当我编辑项目引用时,这些程序集将显示在可用程序集列表中。这个项目现在在MonoDevelope中编译时没有出错。但是,当我在XSP中运行已编译的Web项目时,浏览器中会显示以下错误:
System.IO.FileNotFoundException:无法加载文件或程序集“mysql.web.dll,版本=6.2.3.0,区域性=中性,PublicKeyToken=c5687fc88969c44d”或其依赖项之一。系统找不到指定的文件。
Fustrating的意思是,最初的错误是它无法加载MySQL。
数据
.dll,现在错误消息是它无法加载MySQL。
网状物
DLL。这意味着我以某种方式修复了数据DLL的问题,现在我又解决了Web DLL的问题。我已经走了,重新做了,我学会了修复数据dll的问题,但我无法使Web dll工作。
不幸的是,我对Linux和Mono还很陌生(但对ASP.NET不熟悉),而且我已经没有什么可尝试的了。同样,我在谷歌上也没有发现任何东西可以尝试,除了上面描述的让我寻求帮助的东西。
有人能帮我找出为什么XSP找不到程序集,以及我能做些什么吗?
谢谢,
-威尔