5

我最近从 VS2010 切换到 VS2012,打开数据库项目时出现以下错误

C:\Trunk\Database\Database.dbproj : error  : Internal Error. The database platform service with type Microsoft.Data.Schema.Sql.Sql100DatabaseSchemaProvider is not valid. You must make sure the service is loaded, or you must provide the full type name of a valid database platform service.

我猜它可能是项目文件中令人窒息的以下行

    <DSP>Microsoft.Data.Schema.Sql.Sql100DatabaseSchemaProvider</DSP>

或者可能这个

  <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets" />

知道如何克服这个错误,以便我可以在 VS2012 中加载我的项目吗?

4

3 回答 3

4

显然微软在VS2012中有一个新的Sql1110 DSP。VS2010 有 Sql1100 版本。

要解决此问题,请在 .dbproj 文件中更改以下行:

<ProjectVersion>4.0</ProjectVersion>
<ProjectGuid>{a233d7e8-b460-4b72-a345-aaeee4fb3aca}</ProjectGuid>
<DSP>Microsoft.Data.Schema.Sql.Sql100DatabaseSchemaProvider</DSP>
...
<!--Import the settings-->
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets" />
<ItemGroup>

对此:

<ProjectVersion>4.1</ProjectVersion>
<ProjectGuid>{6cd7e290-f844-4410-97f6-e8fd6e63c5b5}</ProjectGuid>
<DSP>Microsoft.Data.Tools.Schema.Sql.Sql110DatabaseSchemaProvider</DSP>
...
<!--Import the settings-->
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
<ItemGroup>

我在 VS2012 中创建了一个新的空白数据库项目文件,将 .sqlproj 文件与我的旧 .dbproj 文件进行比较,以上几行是主要区别。是的,微软更改了 proj 文件扩展名,但您不必更改旧的 dbproj 扩展名。它对我有用。

于 2013-07-30T21:16:50.713 回答
2

由于我们没有要检查的完整代码集,因此很难理解确切的问题,但对于您的导入 - 您应该将其更改为:

 <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Schema.SqlTasks.targets" />

如果这不能解决问题,如果您安装了 Resharper,请同时更新,并尝试删除其缓存。

于 2012-12-19T14:46:33.320 回答
2

其他人也可能在 VS2013 上遇到同样的问题,在文本编辑器中打开您的数据库项目文件 .dbproj 或 .sqlproj:

改变:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets" />

至:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />

并且从

<ProjectVersion>4.0</ProjectVersion>

至:

<ProjectVersion>4.1</ProjectVersion>

并且从

<DSP>Microsoft.Data.Schema.Sql.Sql100DatabaseSchemaProvider</DSP>

至:

<DSP>Microsoft.Data.Tools.Schema.Sql.Sql120DatabaseSchemaProvider</DSP>
于 2014-07-24T01:20:19.127 回答