我有两个项目需要在构建脚本中使用EF 4.3.1 migrate.exe工具。指向转换后的web.config会很痛苦,它部署在与我的构建服务器不同的服务器上,因此我想将连接字符串作为标志传递。
我已经尝试了我能想到的每个变体(不同的计算机,SQL Server 2008,只是命令行,而不是.bat,以管理员身份运行等),但我总是得到错误: 错误:调用目标引发了异常。
以下是我在本地计算机上尝试过的.bat文件示例:
@rem run_db_migrations.cmd
SET StartUpDirectory=%CD%\MyProject.MVC\bin
SET ConnectionString=Data Source=.\SQLEXPRESS;Initial Catalog=MyProject;Integrated Security=True
SET ConnectionStringProvider=System.Data.SqlClient
SET MigrateExe=.\packages\EntityFramework.4.3.1\tools\migrate.exe
%MigrateExe% MyProject.MVC.dll /StartUpDirectory:"%StartUpDirectory%" /ConnectionString:"%ConnectionString%" /connectionProviderName:%ConnectionStringProvider%
pause
我看过其他类似的帖子,他们说这只是有效的,但奇怪的是他们的旗帜略有不同,所以我想知道是否有些事情发生了变化,或者是否有错误输入。
答案 0 :(得分:1)
我在这里回答了一个类似的问题,关于如何通过参数覆盖connectionstring来迁移。但是,如果没有指定web / app.config文件,我还没有完成它。