Last updated: Oct 4nd 2012, 09:00hr
With the Sept 2012 update of SSDT and DAC, the accompanying SSDT Build Utilities (SSDTBuildUtilities.msi) breaks the headless build server integration as described in this earlier blog post (http://sqlproj.com/index.php/2012/03/headless-msbuild-support-for-ssdt-sqlproj-projects/).
Early reports suggested that this problem is platform specific, but that is not the case. The problem is caused by a missing assembly file, the file is question is currently not part of the SSDTBuildUtilities.msi, and therefor causes the MSBuild task to fail. The problem does not manifest itself if you have the SQL Server Data Tools Sept 2012 update (SSDT.msi) installed on the build server, but since this defeats the purpose of a headless build server, it is therefore not a viable workaround.
The workaround is to manually copy the missing file over to the build server.
You need to copy the:
- %ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\Bin\Microsoft.Data.Tools.Contracts.10.dll
- %ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\Bin\Microsoft.Data.Tools.Contracts.11.dll
To the same directory location on your build server.
Which assembly or assemblies you have to copy depends on the which Microsoft.Data.Tools.Schema.Tasks.Sql.??.dll assemblies are installed on your build server. This is depends on which SSDTBuildUtilities.msi version you used to install; the VS2010 and/or VS2012 hosted SSDT edition. To determine which assemblies you need to copy, simply run the following DIR command:
dir “%ProgramFiles(x86)%\Microsoft SQL Server\110\DAC\bin\Microsoft.Data.Tools.Schema.Tasks.Sql.*.dll”
In my example it shows both versions, as I have both the VS2010 and VS2012 SSDTBuildUtilities.msi installed, so I have to copy both.
NOTE: Please do NOT copy and rename Microsoft.Data.Tools.Schema.Tasks.Sql.10.dll to Microsoft.Data.Tools.Schema.Tasks.Sql.11.dll as this will lead to problems down the road when we have to update these files.
I will update this blog post once there is a better and or final solution to this problem.