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

问题描述 投票:0回答:1

Visual Studio 2015 Community update 3,尝试C++代码分析功能。设置如下:

  • solution properties > code analysis settings > [all configurations] [all platforms] : microsoft native recommended settings
  • project properties > code analysis > [all configurations] [all platforms] : microsoft native recommended settings

每当我跑步

analyze > run code analysis on solution
时,我总会得到一个
c1xx : fatal error C1253: Unable to load model file 'res://mspft140.dll/300'
。每个项目都会发生这种情况,无论是新的还是现有的。 MSDN 对于这个问题不是特别有帮助

该字符串是一个res协议,所以我检查了提到的dll是否位于正确的位置(实际上有两个,在

c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\
c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64
),并用resedit打开它们。两者都包含一个名为
300
的 XML 资源,因此我看不出 VS 无法加载它的任何原因。重置设置没有帮助,完全卸载并重新安装(浪费了半天)也没有帮助。

我在VS中运行代码分析时也用[Path] [contains] [mspft]过滤器运行了

procmon
,但文件系统结果只有
SUCCESS
FILE LOCKED WITH ONLY READERS
,这看起来还可以

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


更新:在使用不同的过滤器彻底查看更多 procmon 捕获后,我发现

cl.exe
尝试打开此注册表项值:
HKCR\PROTOCOLS\Handler\res\CLSID
。显然,它会查找错误输出中提到的
res
协议的处理程序 - 但找不到它,而
res
键的许多同级项引用了一些有效的处理程序,例如,
http
键有
CLSID 
{79eac9e2-baf9-11ce-8c82-00aa004ba90b}
的值。我想我现在的任务是弄清楚
res
CLSID
意味着什么。

c++ visual-studio compiler-errors code-analysis visual-studio-2015
1个回答
1
投票

我对

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

我希望这对某人有帮助,尽管我相信这个错误非常罕见。

© www.soinside.com 2019 - 2024. All rights reserved.