我有两个Visual Studio数据库项目。两者都在我的本地开发环境中构建良好。 在TFS构建服务器上,使用包含两个项目的TFS构建解决方案,一个构建正常,另一个构建失败并出现此错误:
Task "SqlBuildTask"
Creating a model to represent the project...
C:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018: The "SqlBuildTask" task failed unexpectedly.
C:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018: System.NullReferenceException: Object reference not set to an instance of an object.
C:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018: at Microsoft.Data.Schema.Tasks.TaskHostLoader.Load(ITaskHost providedHost, TaskLoggingHelper providedLogger)
C:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018: at Microsoft.Data.Schema.Tasks.DBBuildTask.Execute()
C:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets(58,5): error MSB4018: at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult)
我注意到构建日志中存在以下差异,我认为这是相关的,但我不知道是什么导致它。
好项目:
Overriding target "Build" in project "C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets" with target "Build" from project "C:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.VisualStudio.TeamSystem.Data.Tasks.targets".
项目失败:
Overriding target "Build" in project "C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets" with target "Build" from project "C:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.Common.targets".
两个数据库项目都包含以下导入(仅限):
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets" />
欢迎提供线索!
答案 0 :(得分:3)
啊,问题是我没有在构建服务器上安装GDR版本。 一个项目是使用VSDB RTM创建的,另一个是使用VSDB GDR创建的。
如果只有更好的错误消息来帮助诊断它!