Я занимаюсь разработкой библиотеки .Net Standard, которая выполняет множество вызовов API, а также на некоторые из этих вызовов API должны быть перекрестные ссылки с базой данных SQLite, предоставляемой API.Я разрабатываю проект модульного тестирования вместе с стандартной библиотекой .Net, чтобы проверить, что все работает, и хорошо, когда проект модульного тестирования расширяется вместе с библиотекой.Я написал блок кода, который, как я надеялся, позволил бы мне легко получить доступ к этой базе данных SQLite, однако я получаю
Ошибка сборки не найдена: System.IO.FileNotFoundException: 'Не удалось загрузить файл илисборка 'System.Data.SQLite, версия = 1.0.109.0, культура = нейтральная, PublicKeyToken = db937bc2d44ff139'.Система не может найти указанный файл.
Я установил пакеты nugets
- SQLite
- System.Data.SQLite
- System.Data.SQLite.Core
в мою библиотеку .Net Standard и в мой проект модульного теста.
Я получаю ошибку в модульном тесте после попытки создания новогоэкземпляр этого класса.
Мой класс доступа к данным:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data.SQLite;
using System.IO;
using System.Text;
using System.Threading.Tasks;
namespace D2DataAccess.SqLite
{
public class SQLiteDestinyEngine
{
private readonly SQLiteConnection Connection;
public SQLiteDestinyEngine(FileInfo LocalPath)
{
var builder = new SQLiteConnectionStringBuilder { DataSource = LocalPath.FullName };
Connection = new SQLiteConnection(builder.ToString());
}
public async Task<Dictionary<long, T>> GetDetailedInformationFromHash<T>(string TableName, params long[] itemHashes)
{
return await await Task.Factory.StartNew(async () =>
{
var dataSet = new Dictionary<long, T>();
var query = $"select id, json from '{TableName}' where id in (@hashes)";
using (var command = new SQLiteCommand(query, Connection))
{
command.Parameters.AddWithValue("@hashes", itemHashes);
var reader = await command.ExecuteReaderAsync();
while (await reader.ReadAsync())
{
dataSet.Add(reader.GetInt64(0), JsonConvert.DeserializeObject<T>(reader.GetString(1)));
}
}
return dataSet;
}).ConfigureAwait(false);
}
}
}