Слияние dll с Costura, Microsoft.Data.Sqlite выдает ошибки и не может добавлять миграции и т. Д. - PullRequest
0 голосов
/ 07 мая 2020

У меня есть проект как минимум с 50 dll. И я не знаю, что их в папке root с .exe приложения. Я использую Fody / Costura для решения этой проблемы.

Но ... я хочу переписать всю базу данных в sqlite. То, что конечному пользователю не нужно настраивать, и это было бы простым решением для меня.

Но когда Costura включен, он не может разрешить мне instance.Database.Migrate () и многое другое. команды.

https://gyazo.com/4c2adaf6d279c562cee44b096f123ae5

И когда я удаляю этот контекст с помощью из App.xaml.cs и пытаюсь добавить-миграцию, он пишет:

Ваш запускаемый проект 'x' не ссылается на Microsoft.EntityFrameworkCore.Design. Этот пакет необходим для работы основных инструментов Entity Framework. Убедитесь, что ваш стартовый проект правильный, установите пакет и повторите попытку.

Когда я выключаю Costura, все работает. Но библиотеки DLL находятся в папке root :( Итак ...

  • Есть ли способ скрыть библиотеки DLL и иметь базу данных sqlite в проекте?
  • Или есть есть ли другая альтернатива бессерверной базе данных? Что работает с Costura?
  • У меня нет проблем с некоторыми dll в папке root, но я не хочу их 50.

РЕДАКТИРОВАТЬ: Когда я называю его встроенным ресурсом, та же проблема, что и на картинке.

EmbeddedAssembly.Load («Project.Microsoft.Data.Sqlite.dll», «Microsoft.Data.Sqlite.dll») ;

1 Ответ

0 голосов
/ 07 мая 2020

дублировано: Использование Fody Costura с миграциями Entity Framework Core

цитата из ветки:

Спасибо Трональду за то, что он направил меня на правильный путь. Для всех, кто сталкивается с этим, для меня уловка заключалась в том, чтобы исключить все библиотеки DLL SQLitePCLRaw следующим образом:

<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
  <Costura >
    <ExcludeAssemblies>
      SQLitePCLRaw.*
    </ExcludeAssemblies>
  </Costura>
</Weavers>

Это решение работает с Migrate (), но не работает с добавлением- миграция xxx Это небольшая проблема ... Я просто удаляю fody каждый раз, когда создаю новую миграцию. А затем установите его снова.

Если я не удалю Fody, тогда добавление-миграция пишет:

Ваш запускаемый проект InstaGTO не ссылается на

Microsoft.EntityFrameworkCore.Design. Этот пакет необходим для работы основных инструментов Entity Framework. Убедитесь, что ваш запускаемый проект правильный, установите пакет и повторите попытку.

...