2016-11-24 4 views
1

я создал автономное приложение с dotnet:Запуск миграции в автономных приложениях

dotnet publish -c release 

Пакет развертывания содержит ядро ​​.net выполнения себя - так что если кто-то хочет использовать приложение - не нужен для установки времени автономной работы .net.

Но мой вопрос ... можно ли приложить dotnet.exe к пакету развертывания?

F.e. - мой веб-приложение expectes мигрировали базы данных:

dotnet ef database update 

Эта команда не может быть запущена из автономного приложения (без прямого доступа к dotnet.exe).

Каковы сценарии в этом случае? Как мне с этим справиться?

+0

Взгляните на это сообщение SO: http://stackoverflow.com/questions/35324156/automatic-execute-migrations-when-publishing-asp-net-core-app – Klinger

+3

Просто вызовите 'context.Database.MigrateAsync () 'в коде во время запуска – Tseng

ответ

0

Решения, чтобы добавить его на вашем Startup.cs как тот

public void Configure(
    IApplicationBuilder app, 
    // ... various other parameters that you may have and below add the context that you want to run Migrations 
    YourDbContext db1) 
{ 
{ 
    // run the migrations before other code 
    db1.Database.Migrate(); 
    // ... 
} 

PS. это немного странно, но вы добавляете его на подпись метода Configure в качестве дополнительного параметра, и он работает (я думаю, он автоматически создает объект dbContext и вызывает метод). Это сработало для меня.

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