2014-01-07 4 views
2

Мы используем FluentMigrator (пакет NuGet) в проекте ASP.net/MVC для поддержки изменений базы данных на нашем SQL Server.Зависимости пакетов NuGet и сборки/развертывания серверов

Что такое «правильный» способ распространения пакета NuGet с другими артефактами сборки для использования во время развертывания? Мне нужна только папка «пакеты»?

Я надеюсь получить ответ, отличный от «использовать менеджер пакетов и установить пакет Nuget на PROD».

Я не хочу вытаскивать пакет (из локальных или нелокальных источников) во время развертывания, я хочу включить правильный пакет с моим скомпилированным кодом.

ответ

2

Правильный способ заключается в том, чтобы вытащить упаковку до здания проекта, тогда, предположив, что ваш проект ссылается на сборку таким образом, что Copy Local является истинным, он будет включен в вывод сборки, который должен храниться как артефакт в вашем инструменте CI.

Вы не должны ничего делать с NuGet после этого процесса сборки/развертывания.

+0

Мы используем Fluent Migrator, и в дополнение к dll, на которые ссылается сборка (которые являются CopyLocal = True), мы используем exe (и файлы, которые она зависит от) из пакета, чтобы изменить наши DB. Чтобы это было более ясно, у нас есть зависимость времени сборки от пакета, но у нас также есть зависимость времени развертывания от пакета. Я не хочу вытаскивать пакет во время развертывания, я хочу распространять его в своем приложении. – DonBecker

+0

Можете ли вы установить действие сборки файла .exe на содержимое в окне свойств VS? Таким образом, он будет рассматриваться как отдельный файл и будет включен в выход. Вы также можете вставлять его в качестве ресурса, записывать его на диск во время выполнения - зависит от того, что именно вам нужно. –

Смежные вопросы