对于后台上下文,我们在MVC 3应用程序中使用EF 4.3.1代码优先和迁移。在过去,我们手动完成了开发和暂存部署,但现在我们正在尝试使用MSBUILD Tasks和TFS作为源代码控制来自动创建开发和暂存构建的过程。
我的问题与上述背景有关,我们如何在MSBUILD任务中使用EF迁移powershell命令“Update-Database -verbose -script”生成sql迁移脚本。
有没有办法在MSBUILD任务中使用本机EF 4.3.1迁移命令来自动生成差异sql脚本?
提前感谢您的意见。
答案 0 :(得分:0)
您应该致电powershell:请参阅Using Powershell scripts from MSBuild, Scheduled Tasks, etc
<Target Name="AfterBuild">
<Exec Command="powershell.exe -command "& {.\Register-myscript.ps1 '$(TargetPath)'}"" />
</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>