在构建数据库项目期间,我将得到以下异常。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets(513,5): Error: MSB4018: The "SqlBuildTask" task failed unexpectedly.
14>Microsoft.Data.Tools.Schema.SchemaModel.ScriptCacheException: The cache identifier E:\Systems\MyProject\WorkingCopy-branch\source\Database.my_db_project\obj\debug.Deploy\ASMREXEXP.generated.sql does not exist.奇怪的是,构建在主干上工作得很好,但是在特性分支上却失败了。
发布于 2014-10-29 23:08:05
我刚开始发现同样的错误。我们都看到提到Schema.SchemaModel的事实告诉我,我们都在使用某种文本模板策略。
VS在DB世界中的文本模板构建策略要求已经创建了一个dbmdl文件,以便它们能够运行。这实际上意味着您必须构建该项目两次;一次是构建新的dbmdl文件,然后再一次获得让文本模板跳舞的效果。
似乎会发生的事情--尤其是在切换分支时--您将得到一个与模板所期望的非常不同的旧dbmdl文件,模板试图做的事情与构建试图创建的“新”dbmdl文件不一致--就像尝试根据旧的dbmdl文件选择一个模板修补程序,并将其应用到新的dbmdl文件中--它无法工作,因为基线相距太远。
解决方案是在源树中找到dbmdl文件并删除它。然后您可以构建以创建一个新的dbmdl文件。构建将失败,因为模板将失败,但随后您将构建第二次,模板应该获得新的dbmdl文件并成功。
https://stackoverflow.com/questions/19561630
复制相似问题