ちぐログ

メモ書きです

sqlprojのビルドができなくなった話

何時ぞやからか、ローカルのsqlprojのビルドでエラーが出るようになってしまいました。
(環境はVS2013Update4 + SQL2014)

f:id:chiguniiita:20141213124710j:plain

エラー    8   04018: "SqlBuildTask" タスクが予期せずに失敗しました。
System.MethodAccessException: メソッド 'Microsoft.Data.Tools.Schema.Sql.Build.SqlTaskHost.OnCreateCustomSchemaData(System.String, System.Collections.Generic.Dictionary`2<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.<ExecuteInstantiatedTask>d__20.MoveNext()

ググってみた

Connectに解決方法っぽい記事があったので試してみることに。

VS2013 SqlBuildTask 04018 Error | Microsoft Connect

  1. Install the latest DacFx from http://www.microsoft.com/en-us/download/details.aspx?id=43370
  2. Reinstall the latest SSDT from http://go.microsoft.com/fwlink/?LinkID=393521

とりあえず、2つを(再)インストール。

ふとSSDTインストール中に明細を見ているとSQLServer2014の文字が・・・

そういえば最近SQLServer2014をインストールしたので、これじゃないかと。

結果

インストールして、再ビルドかけた結果、見事エラーなしでビルド完了しました。

SSDT自体は以前からインストールしてあったので、 SQLServer2014をインストールした時点で、環境が壊れたか、2014の何かがインストールされていなかった可能性が高いとの推測。