.Net Standard 2.0 SQLite.Core Сборка не найдена в модульном тесте - PullRequest
0 голосов
/ 19 сентября 2018

Я занимаюсь разработкой библиотеки .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);
        }
    }
}
...