Asp.net 正在从Team City运行更新数据库

Asp.net 正在从Team City运行更新数据库,asp.net,teamcity,entity-framework-4.3,Asp.net,Teamcity,Entity Framework 4.3,我使用EntityFramework4.3数据库迁移创建了一个新的应用程序。使用“更新数据库”命令从PackageManager控制台进行迁移非常有效 现在我想在每次使用TeamCity构建应用程序时运行数据库迁移,看起来我需要创建一个powershell脚本来实现这一点 有人能告诉我一些关于如何从命令行或powershell运行package manager命令的说明吗?我所能找到的只是有关如何通过package manager控制台执行此操作的说明,我不知道如何从Team City构建步骤中

我使用EntityFramework4.3数据库迁移创建了一个新的应用程序。使用“更新数据库”命令从PackageManager控制台进行迁移非常有效

现在我想在每次使用TeamCity构建应用程序时运行数据库迁移,看起来我需要创建一个powershell脚本来实现这一点


有人能告诉我一些关于如何从命令行或powershell运行package manager命令的说明吗?我所能找到的只是有关如何通过package manager控制台执行此操作的说明,我不知道如何从Team City构建步骤中运行此操作。

migrate.exe是我要查找的,它位于“packages\EntityFramework.4.3.1\tools”中

使用以下内容在Team City中添加新的构建步骤:

运行程序类型:命令行

命令可执行文件:packages\EntityFramework.4.3.1\tools\migrate.exe


命令参数:MyApplicationName/StartupDirectory:MyApplicationName\bin

安装实体框架nuget到repo,并使用packages\EntityFramework.5.0.0\tools\或同等软件包下附带的migrate.exe

然后运行如下所示的批处理脚本:

SET AssemblyName=MyMvc4App
SET StartUpDirectory=MyMvc4App\bin\
SET ConnectionString=Server=tcp:XXXX.database.windows.net,1433;Database=XXXX;User ID=XXXX;Password=XXXX;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;MultipleActiveResultSets=True
SET ConnectionStringProvider=System.Data.SqlClient
SET ConfigFilePath=%CD%\MyMvc4App\web.config
SET MigrateExe=packages\EntityFramework.5.0.0\tools\migrate.exe

%MigrateExe% %AssemblyName%.dll /startUpDirectory:%StartUpDirectory% /startUpConfigurationFile:"%ConfigFilePath%" /connectionProviderName:"%ConnectionStringProvider%" /connectionString:"%ConnectionString%" /verbose
pause

我回答了一个问题,在那里我解释了为什么在没有指定web/app.config文件的情况下我还没有让它工作。

EF4.3包含名为
migrate.exe
的命令行工具,它提供了与
更新数据库
相同的功能。