sqlprojのビルドができなくなった話
何時ぞやからか、ローカルのsqlprojのビルドでエラーが出るようになってしまいました。
(環境はVS2013Update4 + SQL2014)
エラー 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
- Install the latest DacFx from http://www.microsoft.com/en-us/download/details.aspx?id=43370
- Reinstall the latest SSDT from http://go.microsoft.com/fwlink/?LinkID=393521
とりあえず、2つを(再)インストール。
ふとSSDTインストール中に明細を見ているとSQLServer2014の文字が・・・
そういえば最近SQLServer2014をインストールしたので、これじゃないかと。
結果
インストールして、再ビルドかけた結果、見事エラーなしでビルド完了しました。
SSDT自体は以前からインストールしてあったので、 SQLServer2014をインストールした時点で、環境が壊れたか、2014の何かがインストールされていなかった可能性が高いとの推測。