Во-первых, некоторая контекстная информация:
На платформе, на которой он работает, установлена .Net Framework 4.7.1. У меня есть библиотека классов, соответствующая спецификации .Net Standard 2, для поддержки .Net Core в будущем. Теперь часть зависимостей, а именно Dapper, использует System.Data.SqlClient. Эта библиотека отлично работает на моем компьютере, но я сталкиваюсь с проблемами при ее развертывании и тестировании на своем сервере Windows 2012. А именно, у меня возникает ошибка времени выполнения при использовании Dapper: не удалось загрузить файл или сборку «System.Data.SqlClient, Version=4.4.0.0, Culture=neutral, PublicKeyToken=kfddsnfsjnfs» или одну из его зависимостей. Система не может найти указанный файл.
Имейте в виду, сначала у меня была установлена версия 4.5.1.0. Затем я понизил версию до 4.4.0.0 и перезапустил код. Теперь я получил ту же ошибку, но на этот раз относительно 4.2.0.0. Но я не могу найти эту конкретную версию в Nuget. После этого я погуглил. Много. Сначала я попробовал добавить перепривязку старой версии к новой, добавив
appsettings.json:
{
"dependentAssembly": {
"assemblyIdentity": {
"name": "System.Data.SqlClient",
"publicKeyToken": "kfddsnfsjnfs",
"culture": "neutral"
},
"bindingRedirect": {
"oldVersion ": "4.4.0.0",
"newVersion": "4.5.1"
}
}
}
и app.config:
Однако это не имело значения. Я также пробовал более старые версии SqlClient и несколько переустановок. Я также нашел людей, которые сказали дважды проверить файл csproj, чтобы он не ссылался на что-то в gac, но это не так:
netstandard2.0
me
false
1.0.8
TaskMetadata.json
True
Подробнее здесь: https://stackoverflow.com/questions/531 ... on-4-4-0-0