我终于达到了这样的程度:我的解决方案在构建步骤中完成了所需的一切:
NuGet
个套件。这在当地有各种各样的奇迹。
现在我想我将GitHub存储库与AppHarbor集成在一起,因为CI对我来说是下一个合乎逻辑的步骤。
问题是,数据库分两步构建:
dbproj
,生成.dbschema
BeforeBuild
目标构建和部署dbproj
,以及AfterBuild
目标自行执行数据库升级程序,使用任何尚未运行的SQL脚本更新架构。问题是.dbproj
项目上的AppHarbor构建服务器失败,因为其服务器配置中缺少必需的SqlTasks.target
。
我尝试了快速修复手动添加该目标(以及它所依赖的其他目标),但这产生了一个我无法通过的错误:
无法从程序集加载“SqlBuildTask”任务 Microsoft.Data.Schema.Tasks.Sql [...]
我发现apparently您无法在没有安装.dbproj
或VS
的环境中构建TFS
项目。
我该怎么办?我可能有几个选择:
手动连接到AppHarbor数据库,并在我的开发环境中针对新的生产数据库运行生成的部署脚本。
这一种打败了一步建筑的目的。
不要使用.dbproj
数据库项目,只需在DbUp“升级程序”中包含所有基本安装表。
这有两个问题,尽管它们可能已经解决了。第一个是我应该自己创建数据库,第二个是我用来记录数据库升级过程的log4net
表将由进程本身创建,这是各种错误在我的书中。
使用一些自定义数据库项目解决方案,我可以在没有此问题的情况下部署数据库 我真的不知道这样的任何解决方案,是否存在,是否可靠?
欢迎提出意见,部署文章或任何建议,快速破解。在AppHarbor上构建.dbproj也足够了。
最后,要求AppHarbor在其构建服务器中包含TFS
和/或VS
,构建.dbproj
项目对于构建来说听起来相当合理是不是太过分了服务器要做,对吗?