2

尝试为在我们的构建服务器上工作的 Visual Studio 2010 数据工具项目构建构建。服务器是 2008 R2(64 位),我已按照此处的说明安装必要的先决条件。该项目在完整的 VS 2010 安装上本地构建良好(并非总是如此!)但在构建服务器上我看到以下错误(为简洁和匿名而编辑):

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets(513,5): error MSB4018:
The "SqlBuildTask" task failed unexpectedly. 
 System.MissingMethodException: Method not found: 'System.Collections.Generic.Dictionary`2<System.String,System.String> Microsoft.Data.Tools.Schema.Sql.Build.SqlPropertiesHelper.ParseContributorArgs(System.String)'.
  at Microsoft.Data.Tools.Schema.Tasks.Sql.SqlBuildTask.ExecuteValidateModelStep()
  at Microsoft.Data.Tools.Schema.Tasks.Sql.SqlBuildTask.ExecuteStep(Func`1 step)
  at Microsoft.Data.Tools.Schema.Tasks.Sql.SqlBuildTask.Execute()
  at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
  at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask, Boolean& taskResult)

关于如何解决这个问题的任何想法?

4

2 回答 2

2

为自我回答道歉,但希望这对某人有所帮助。

我查看了 SqlTask​​s.targets 文件,发现 SqlBuildTask 源自“C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\Microsoft.Data.Tools.Schema.Tasks.Sql.10.dll “ 文件。由于构建在本地工作,我比较了那里和构建服务器之间的版本。我注意到一些 DLL 具有相同的版本,但其他的则不同。我试图反思以找到“丢失的方法”应该驻留的位置,但放弃并决定将文件夹的内容从我的开发机器复制到构建服务器上的同一文件夹中,不包括“en”和“1033”文件夹。

这似乎已经解决了这个问题,我只能假设在我必须在构建服务器上进行的大量单独安装中的某个地方,引入了彼此不同步的 dll,这导致了问题.

如果有人可以正确解释或提出更合理的解决方案,那就太好了。

于 2013-10-02T15:24:35.903 回答
0

如果安装 SQL Server 2012,Visual Studio 中的 SSDT 也存在问题。对我来说,解决方法是在 SQL 安装后重新安装最新的 SSDT。我注意到这个问题是指 VS2010,但 SSDT 问题似乎无处不在。

这里有更多信息:http: //fubnuts.wordpress.com/2013/05/31/fun-with-vs2012-sql-server-projects-and-sql-server-2012/

SSDT 在这里下载:http: //msdn.microsoft.com/en-US/data/hh297027

于 2014-09-13T18:52:44.550 回答