我有两个项目需要在构建脚本期间使用 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
我看过其他类似的帖子,他们说这很有效,但奇怪的是他们的标志略有不同,所以我想知道是否有什么变化或者他们是否打错了。