Ошибка 0x80131047 loading MySQL Connector DLL

PowerShell только что был открыт sourced (v6.0.0-alpha.10), и я пытаюсь подключить его к экземпляру MySQL из OS X.

Oracle , кажется, предполагает (если я правильно читать его) , что у них есть разъем .Net Core , здесь . Я запускал установку следующим образом:

Install-Package MySql.ConnectorNET.Entity -Destination /MySQL

и результат выглядел неплохо:

Имя Версия Описание источника                

---- ------- ------ ------- 
MySql.ConnectorNET.Data 6.8.3.2 самородный ADO.Net драйвер для MySQL    
MySql.ConnectorNET.Entity 6.8.3.2 самородка MySql Connector / NET для платформы Entity 6

Когда я пытаюсь загрузить сборку следующим образом:

[System.Reflection.Assembly]::Load(/MySQL/MySql.ConnectorNET.Data.6.8.3.2/lib/net45/MySql.Data.dll)

Я получаю следующую ошибку (обратите внимание, что я передаю путь с переменной $dll):

Исключение, вызывающее «Load» с аргументом «1»: «Не удалось загрузить
файл или сборка
«/MySQL/MySql.ConnectorNET.Entity.6.8.3.2/lib/net40/MySql.Data.dll,
Культура = нейтральная, PublicKeyToken = null. Данное имя сборки или
codebase недействительна. (Исключение из HRESULT: 0x80131047) «В
/development/scripts/test.ps1:28 char: 1
+ [System.Reflection.Assembly] :: Загрузка ("$ dll")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo: NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId: исключение FileLoadException

Любые идеи об обходном пути / исправлении? Я понимаю, что PowerShell все еще в альфе.

РЕДАКТИРОВАТЬ

Я смог установить поставщика MySQL с помощью этих двух команд:

Register-PackageSource -Name nuget.org -ProviderName NuGet -Location https://www.nuget.org/api/v2/
Install-Package MySql.Data.EntityFrameworkCore -Destination /Volumes/Main/libraries/MySQL/ -AllowPrereleaseVersions

Я пробовал регистрировать все сборки, о которых я мог думать:

Microsoft.EntityFrameworkCore.1.0.1 / Библиотека / netstandard1.3 / Microsoft.EntityFrameworkCore.dll
Microsoft.Extensions.Configuration.1.0.0 / Библиотека / netstandard1.1 / Microsoft.Extensions.Configuration.dll
Microsoft.Extensions.Configuration.Json.1.0.0 / Библиотека / netstandard1.3 / Microsoft.Extensions.Configuration.Json.dll
MySql.Data.EntityFrameworkCore.7.0.5-IR21 / Библиотека / netstandard1.6 / MySql.Data.EntityFrameworkCore.dll
MySql.Data.7.0.5-IR21 / Библиотека / netstandard1.6 / MySql.Data.dll 

Но, пытаясь создать новый объект MySql, он все еще взрывает это:

Новый объект: не удается найти тип [MySql.Data.MySqlClient]: убедитесь, что загружена сборка, содержащая этот тип.

mysql,macos,powershell,.net-core,powershell-core,

1

Ответов: 2


1

Это не библиотека .NET Core. Здесь слово «Core» означает функциональность, разделяемую между EF6 и веб-пакетами, и предваряет введение .NET Core.

На платформе Entity Framework Core разрабатываются библиотеки MySql.


0 принят

РЕШЕНИЕ

Итак, оказывается, я был на (в основном) правильном пути. Все DLL-файлы должны быть загружены. Сделайте жизнь проще, скопировав их в свой собственный каталог, а затем загрузите их, итерации по каждому из них:

скопируйте библиотеки DLL в новое место

Get-ChildItem "/Volumes/Main/libraries/mysql/*/lib/netstandard1.*/*.dll" | Copy-Item -Destination "/Volumes/Main/libraries/NEW_mysql" -Force

загрузить все необходимые DLL

Get-ChildItem "/Volumes/Main/libraries/NEW_mysql" | ForEach-Object {
$path = "/Volumes/Main/libraries/NEW_mysql/" + $_.Name
Add-Type -Path $path -PassThru | Out-Null
}
MySQL, MacOS, PowerShell, .net-ядро, ядро ??PowerShell-,
Похожие вопросы