VS 2013 SqlBuildTask 04018错误

13

更新了最新的服务包后,我的数据库项目不再能够构建。

我得到了以下错误信息:

Error 1 04018: “SqlBuildTask”任务意外失败。System.MethodAccessException: 试图通过方法“Microsoft.Data.Tools.Schema.Sql.Build.SqlTaskHost.OnCreateCustomSchemaData(System.String,System.Collections.Generic.Dictionary2<System.String,System.String>)”来访问方法“Microsoft.Data.Tools.Components.Diagnostics.SqlTracer.ShouldTrace(System.Diagnostics.TraceEventType)”失败。在 Microsoft.Data.Tools.Schema.Sql.Build.SqlTaskHost.OnCreateCustomSchemaData(String filePath, Dictionary 2 referenceMetadata) 中 在 Microsoft.Data.Tools.Schema.Sql.Build.SqlTaskHost.CreateCustomSchemaData(String filePath, Dictionary 2 referenceMetadata) 中 在 Microsoft.Data.Tools.Schema.Tasks.Sql.TaskHostLoader.ProcessReferences(TaskLoggingHelper providedLogger, SqlTaskHost host, ErrorManager errors) 中 在 Microsoft.Data.Tools.Schema.Tasks.Sql.TaskHostLoader.LoadImpl(ITaskHost providedHost, TaskLoggingHelper providedLogger) 中 在 Microsoft.Data.Tools.Schema.Tasks.Sql.TaskHostLoader.Load(ITaskHost providedHost, TaskLoggingHelper providedLogger) 中 在 Microsoft.Data.Tools.Schema.Tasks.Sql.SqlBuildTask.ExecuteLoadTaskHostStep() 中 在 Microsoft.Data.Tools.Schema.Tasks.Sql.SqlBuildTask.ExecuteStep(Func 1 step) 中 在 Microsoft.Data.Tools.Schema.Tasks.Sql.SqlBuildTask.Execute() 中 在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 中 在 Microsoft.Build.BackEnd.TaskBuilder.d__20.MoveNext() C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets

我尝试了重新启动和修复VS2013,但问题仍未解决。


2
重复的问题在这里:https://dev59.com/R18e5IYBdhLWcg3wqr2t - 你可能想要关注一下它。 - dalcam
4个回答

11

1

仅仅更新到最新的SSDT对我来说不起作用。

我的配置:

Win 7企业版,VS Express 2013 v12.0.31101.00 更新4,.NET 4.5.51209

我的解决方案:

  1. 卸载所有以前版本的SQL Server,例如2005、2005移动版2008、紧凑版等。我保留了2008安装支持文件。
  2. 也卸载SSDT
  3. 下载并安装最新的SQL Server数据工具http://msdn.microsoft.com/en-US/data/hh297027(截至2015年4月8日,版本为V 12.0.50318.0)
  4. 重新加载项目,清理,重建,没有错误!

0

好的,对我有效的解决方案是:

我比较了文件的日期和版本:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\SSDT\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets

我的构建机器上的版本比开发机器上的版本旧了一年。 所以我将开发机器上的文件复制到构建服务器上,然后它就可以工作了...

MSBuild,真的吗?


哦... 这也在这里提到了:链接 作为重复问题的答案。 - ashantiel

0

我必须完成以上所有任务,还要多做一点。

  1. 安装我所使用的 SQL(2012)的最新服务包
  2. 更新 SSDT
  3. 删除新安装位置中的旧 SSDT 文件
  4. 打开项目属性并取消选中“为常见对象启用扩展的 Transact-SQL 验证”

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接