Миграция кода EF в ссылочной dll, проходящей через nuget
У нас ситуация. Наша компания имеет платформу, основанную на.net, которая используется продуктами, разработанными с использованием этой платформы. Теперь эта платформа сначала использует код EF. Мы хотим реализовать миграцию кода EF через сгенерированные определения миграций, потому что наши сущности присутствуют в одном из проектов Framework. Итак, я это реализовал. Но ситуация такова, что этот фреймворк мы распространяем на другие продукты как пакет Nuget (внутренний).
Теперь ситуация такова, что ProductA использует пакет с xyz.dll, в котором включена миграция. Теперь разработчики "ProductA" хотят сначала обновить базу данных, созданную кодом Framework EF, с помощью миграции xyz.dll, но эта dll добавляется только как ссылка на dll. Таким образом, выполнение команды в консоли диспетчера пакетов, такой как Update-Database, не работает, потому что проект находится не в текущем решении, а в справочной DLL
Как мне это решить?
1 ответ
На самом деле это довольно легко решить, проект, в который вы добавляете пакет nuget, также должен ссылаться на EF.
Вы можете фактически применить это в своих пакетах nuget с помощью зависимости, например:
<dependencies>
<dependency id="EntityFramework" version="4.2.0.0" />
</dependencies>
в вашем nuspec (очевидно, обновите версию с той, которую вы используете)
Смотрите: http://docs.nuget.org/docs/reference/nuspec-reference
а также
http://docs.nuget.org/docs/reference/versioning
для более подробной информации о том, как работает синтаксис зависимости