C# 如何在VS2010和VS2012中加载数据库项目?

C# 如何在VS2010和VS2012中加载数据库项目?,c#,sql-server,visual-studio,C#,Sql Server,Visual Studio,我最近从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 loade

我最近从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>
Microsoft.Data.Schema.Sql.Sql100DatabaseSchemaProvider
或者可能是这个

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


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

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

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


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

显然,Microsoft在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>
4.0
{a233d7e8-b460-4b72-a345-aaeee4fb3aca}
Microsoft.Data.Schema.Sql.Sql100DatabaseSchemaProvider
...
为此:

<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>
4.1
{6cd7e290-f844-4410-97f6-e8fd6e63c5b5}
Microsoft.Data.Tools.Schema.Sql.Sql110DatabaseSchemaProvider
...

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

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

更改:

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

致:


来自

<ProjectVersion>4.0</ProjectVersion>
<DSP>Microsoft.Data.Schema.Sql.Sql100DatabaseSchemaProvider</DSP>
4.0
致:

4.1
来自

<ProjectVersion>4.0</ProjectVersion>
<DSP>Microsoft.Data.Schema.Sql.Sql100DatabaseSchemaProvider</DSP>
Microsoft.Data.Schema.Sql.Sql100DatabaseSchemaProvider
致:

Microsoft.Data.Tools.Schema.Sql.Sql120DatabaseSchemaProvider

是的,我安装了Resharper。@连接上的aggaton-A显示了一个类似的错误,该错误在移除Resharper的缓存时已修复。删除Resharper缓存文件似乎对我有帮助,谢谢。我将缓存移动到%TEMP%,以便于查找,并删除了ReSharperChache目录,然后重新启动了VS2012。
<DSP>Microsoft.Data.Tools.Schema.Sql.Sql120DatabaseSchemaProvider</DSP>