VS2015 中任何和所有 C++ 项目的“打开 SDF 文件时出错”

Posted

技术标签:

【中文标题】VS2015 中任何和所有 C++ 项目的“打开 SDF 文件时出错”【英文标题】:"Error Opening SDF File" For Any and All C++ Projects in VS2015 【发布时间】:2015-11-29 07:31:16 【问题描述】:

我在 VS2015 中创建或打开的任何 C++ 项目,我都会收到此错误:

创建或打开 C++ 浏览数据库文件 WHATEVER.sdf 时出错。 IntelliSense 和浏览信息将不适用于 C++ 项目。

确保已安装 Microsoft SQL Server Compact 4.0,并且没有其他应用程序正在访问该文件。如果此问题仍然存在,请删除文件并重新打开解决方案。

这意味着没有 IntelliSense 等,这是我首先使用 Visual Studio 的一半原因。我在 Windows 8.1 上使用 Visual Studio 2015 企业版,这发生在 所有 C++ 项目中。 SDF 文件实际上并没有被创建,因此没有要删除的文件。

到目前为止我已经尝试过什么;没有任何影响:

确保实际安装了 SQL Server Compact 4.0(确实安装了。)版本是 4.0sp1,无论如何我尝试用 4.0 替换它,但它告诉我已经存在更新的版本,无需执行任何操作。李> 以提升的(管理员)权限运行 VS。 在不同目录中创建项目(例如,在默认的 VS 项目路径下、在驱动器的根目录下、在另一个驱动器上、在其中没有空格的路径上等) 修复 Visual Studio 安装(两次)。 使用 SDF 文件的“后备位置”(在工具->选项->文本编辑器->C/C++->高级->后备位置下)效果完全相同。

使用/Log 命令行选项运行 VS (devenv.exe) 并打开一个项目然后关闭 VS 给了我一个 600KB+ 的 XML 文件,我无法阅读,粗略搜索后发现没有可疑条目。

任何提示/建议/解决方案?

【问题讨论】:

【参考方案1】:

我自己刚刚在安装了 Visual Studio 2015 Update 1 的 Windows 10 上遇到了这个问题。

下载 SQL Server Compact 4.0 SP1 安装程序并修复安装,似乎很好地纠正了这种情况。

https://www.microsoft.com/en-gb/download/details.aspx?id=30709

【讨论】:

在这里操作。我实际上无权访问那个特定的系统 ATM。也许我可以在接下来的几周内检查一下。谢谢。 谢谢。非常好;)【参考方案2】:

我刚刚在 Virtual Box 下运行 Windows 7 Professional 32 位 SP1(完全更新)上的 Visual Studio Professional 2012 Update 5 与此问题(OP 中的消息,并且 Intellisense 完全禁用)进行了一场小规模战争5.2.8(主机操作系统为Windows 10 Pro 64位,全面更新。)

我尝试了所有方法,包括上面 Jake Hendy 建议的解决方案 - 没有任何帮助。我什至尝试完全强制卸载,然后重新安装整个 Visual Studio。

当我回忆起几个月前我保存了 VM 的快照时,我发现了一条线索,当时一切正常 - 我尝试恢复到该快照,但问题仍然存在!这让我怀疑可能不是操作系统或安装/运行在其中的软件本身,而是实际上以某种方式导致问题的管理程序:我最近从 5.2.6 升级到了 Virtual Box 5.2.8。所以我重新下载并重新安装了 Virtual Box 5.2.6(在预先存在的 5.2.8 安装之上,基本上是替换它)——问题确实消失了!

因此,对于在 VM 内的旧版操作系统上运行旧版开发环境的任何人 - 如果您遇到此类问题,请考虑您的管理程序最近发生了哪些更新。显然,SQL Server Compact 4.0 SP1 在幕后做了一些相当挑剔或超级“高级”的事情,并且可以被操作环境深处的晦涩(可能与安全相关?)更改巧妙地破坏。一个应用程序是如何被这样的虚拟机管理程序更改破坏的,这有点令人震惊 - 而其他一切似乎仍然可以正常工作......

无论如何,这是我的特殊(诚然,相当极端的情况)问题和解决方案 - 虽然不太可能,但我希望这可以帮助处于类似情况的其他人。

【讨论】:

在这里操作。哇!这太有趣了。就我而言,我在实际硬件上运行,所以没有管理程序。但是感谢您发布答案。它可能会帮助一些可怜的灵魂......【参考方案3】:

在我的情况下,我遇到了 VS2017 的问题。原来我有一个非法的后备位置

Options > Text Editor > C/C++- > Advanced > Section Fallback Location

这不起作用:D:\\IPCH_fallback\\

这可行:D:\\IPCH_fallback

Always Use Fallback LocationDo Not Warn If Fallback Location Used 都是 True

一些懒惰的编程女巫或巫师在不检查的情况下添加了另一个\\,多年的不适。

【讨论】:

以上是关于VS2015 中任何和所有 C++ 项目的“打开 SDF 文件时出错”的主要内容,如果未能解决你的问题,请参考以下文章

如何检查是不是所有字段都已填写? [C++,VS 2015,Windows 窗体]

Visual Studio 2015。在安装项目中转换为所有 dll 的 c++ 控制台应用程序

如何用Code Blocks创建C++控制台项目

UE4无法创建C++项目

我安装vs2017时安装的c++没安mfc请问怎么单独添加这个组件

我安装vs2017时安装的c++没安mfc请问怎么单独添加这个组件