Visual Studio2015:C++代码分析错误C1253,无法加载模型文件'res://mspft140.dll/300'

Visual Studio 2015: C++ code analysis error C1253, unable to load model file 'res://mspft140.dll/300'

Visual Studio 2015社区更新3,试用C++代码分析功能。设置如下:

每当我 运行 analyze > run code analysis on solution 我总是会得到一个 c1xx : fatal error C1253: Unable to load model file 'res://mspft140.dll/300'。每个项目都会发生这种情况,无论是新项目还是现有项目。 MSDN not particularly helpful 关于这个。

字符串是res protocol,所以我检查了提到的dll是否在正确的位置(实际上有两个,在c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64),然后打开它们使用 重新编辑。两者都包含一个名为 300 的 XML 资源,所以我看不出任何 VS 无法加载它的原因。重置设置没有帮助,完全卸载并重新安装(浪费了半天)也没有。

我也在VS里运行运行procmon[Path] [contains] [mspft]过滤,运行ning代码分析,但是文件系统结果只有SUCCESSFILE LOCKED WITH ONLY READERS,其中 seems to be ok

有人遇到过这个错误吗?有人对其原因有任何猜测吗?


更新:在使用不同过滤器仔细查看更多 procmon 捕获后,我发现 cl.exe 试图打开此注册表项值:HKCR\PROTOCOLS\Handler\res\CLSID .很明显,它会查找错误输出中提到的 res 协议的处理程序 - 但找不到它,而 res 密钥的许多兄弟项都引用了一些有效的处理程序,例如 http 键的 CLSID 值为 {79eac9e2-baf9-11ce-8c82-00aa004ba90b}。我想我现在的任务是弄清楚 res CLSID 是什么意思。

我对 res 协议处理程序的假设是正确的。正确的 HKCR\PROTOCOLS\Handler\res\CLSID 值是 {3050f3bc-98b5-11cf-bb82-00aa00bdce0b}(指的是 C:\Windows\System32\mshtml.dll)。由于某种原因,我的注册表丢失了它;我一添加值,代码分析就开始工作,没有错误。

我希望这对某人有所帮助,尽管我相信该错误极为罕见。