如何使用MSBuild任务自动执行EF 4.3 Code-First SQL Schema Migration Script

时间:2012-06-06 01:10:48

标签: entity-framework msbuild-task ef-migrations

对于后台上下文,我们在MVC 3应用程序中使用EF 4.3.1代码优先和迁移。在过去,我们手动完成了开发和暂存部署,但现在我们正在尝试使用MSBUILD Tasks和TFS作为源代码控制来自动创建开发和暂存构建的过程。

我的问题与上述背景有关,我们如何在MSBUILD任务中使用EF迁移powershell命令“Update-Database -verbose -script”生成sql迁移脚本。

有没有办法在MSBUILD任务中使用本机EF 4.3.1迁移命令来自动生成差异sql脚本?

提前感谢您的意见。

3 个答案:

答案 0 :(得分:0)

您应该致电powershell:请参阅Using Powershell scripts from MSBuild, Scheduled Tasks, etc

<Target Name="AfterBuild">
    <Exec Command="powershell.exe -command &quot;&amp; {.\Register-myscript.ps1 &apos;$(TargetPath)&apos;}&quot;" />
</Target>

答案 1 :(得分:0)

您可以按照How to run Entity Framework Migrations using MSBuild and Migrate.exe

中的说明运行Migrate.exe的MSBuild任务

答案 2 :(得分:0)

这是msbuild任务的工作版本。它将migrate.exe从EF 6的tools文件夹复制到构建目录中。为了使其工作,所有路径都是绝对的。

  <Target Name="AfterBuild">
<copy SourceFiles="$(SolutionDir)packages\EntityFramework.6.1.3\tools\migrate.exe" DestinationFolder="$(TargetDir)" />
<exec Command="$(TargetDir)migrate.exe *YourData.dll* Configuration /startUpDirectory:$(TargetDir) /startUpConfigurationFile:$(TargetDir)WebStart.NET.dll.config /verbose"/>
</Target>