我正在使用混合了vbscript代码和.Net代码的较旧的应用程序。 .Net代码是较新的,它使用MySQL.Data版本6.9.12,VBScript是所有旧版本,仍然使用6.9.8版本。当我最初在.Net中编写类时,我想使用MySQL的较新版本,但我们不准备将所有代码更新为较新的版本,因此我能够将web.config更新为在我的DLL中同时存在这两个版本应用程序,并且工作正常。 这是我的web.config外观的一个示例:
<system.data>
<DbProviderFactories>
<clear />
<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.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" />
<codeBase version="6.9.8.0" href="C:\inetpub\wwwroot\Code\DLLs\MySql.Data.dll" />
<codeBase version="6.9.12.0" href="C:\inetpub\wwwroot\Code\DLLs\UpdatedDLLs\MySql.Data.dll" />
<bindingRedirect oldVersion="6.9.8.0" newVersion="6.9.12.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
现在我遇到了问题,因为我需要从vbscript页面调用.Net类(我知道逻辑解决方案是将vbscript页面更新为.Net,我所有的问题都会消失,但是我有时间限制,所以我现在无法更新vbscript页面)。所以我这样称呼我的.Net类(忽略命名约定):
dim dotnetclass
set dotnetclass = Server.CreateObject("MyProject.CardIntegrations.Controllers.CardController")
strArray= dotnetclass.GetCardIntegrationHelper(5, 6)
set dotnetclass= Nothing
所以看起来server.createobject正常工作。当我调用“ GetCardIntegrationHelper”函数时发生错误,它说它无法找到MySql.Data 6.9.12 DLL。香港专业教育学院一直在测试我的.Net函数与单元测试,以便工作正常,并且可以找到DLL没问题。不过,MyProject中的packages.config和app.config都参考6.9.12。
是否缺少某些内容,所以当我从vbscript调用.Net函数时,它可以找到更新的DLL吗?