2013-10-24 75 views
3

在生成我的數據庫項目期間,出現以下異常。SSDT構建錯誤

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. 

奇怪的是,構建工程正常工作,但在功能分支上的此異常失敗。

回答

5

我剛開始得到這個完全相同的錯誤。我們都看到提及Schema.SchemaModel的事實表明我們都在使用某種文本模板策略。

VS的數據庫世界中的文本模板的構建策略要求已經創建了dbmdl文件才能運行它們。這實際上意味着您必須兩次構建項目;一次構建新的dbmdl文件,然後再次拿起讓你的文本模板跳舞的效果。

有什麼事發生 - 尤其是切換分支時 - 就是你結束了一箇舊dbmdl文件,它是從什麼模板都期待所以不同,那什麼模板嘗試做的是與「新賠率「構建試圖創建的」dbmdl「文件 - 就像嘗試基於舊的dbmdl文件挑選模板修補程序並將其應用於新文件 - 它不起作用,因爲基線距離太遠。

解決方法是在您的源代碼樹中找到dbmdl文件並將其刪除。 然後您可以創建一個新的dbmdl文件。構建將失敗,因爲模板將失敗,但您隨後構建一個秒,模板應該選取新的dbmdl文件併成功。

+0

重建dbmdl的工作就像一個魅力。謝謝! –