【问题标题】:Error on startup when not having c++ installed未安装 c++ 时启动时出错
【发布时间】:2018-01-30 06:00:52
【问题描述】:

我在启动 VS 15.3.1 时在活动日志中看到此错误。 它似乎与 PVS 工作室有关,因为当我禁用扩展时它就消失了。

我只使用 C#,所以我没有安装任何 c++ 模块。 单击确定消息后,我没有遇到任何其他异常。

<entry>
    <record>243</record>
    <time>2017/08/22 05:07:13.222</time>
    <type>Error</type>
    <source>VisualStudio</source>
    <description>LegacySitePackage failed for package [Visual C++ Project System Package]Source: &apos;Microsoft.VisualStudio.Project.VisualC.VCProjectEngine&apos; Description: No platforms have been found on this installation.&#x000D;&#x000A;System.Runtime.InteropServices.COMException (0x8005050A): No platforms have been found on this installation.&#x000D;&#x000A;   at Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProjectEngineShim.&lt;ReadInstalledPlatformsAsync&gt;d__260.MoveNext()&#x000D;&#x000A;--- End of stack trace from previous location where exception was thrown ---&#x000D;&#x000A;   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)&#x000D;&#x000A;   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)&#x000D;&#x000A;   at Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProjectEngineShim.&lt;&gt;c__DisplayClass55_0.&lt;&lt;Initialize&gt;b__0&gt;d.MoveNext()&#x000D;&#x000A;--- End of stack trace from previous location where exception was thrown ---&#x000D;&#x000A;   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)&#x000D;&#x000A;   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)&#x000D;&#x000A;   at Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.ApartmentMarshaler.&lt;&gt;c__DisplayClass7_0.&lt;&lt;Invoke&gt;b__0&gt;d.MoveNext()&#x000D;&#x000A;--- End of stack trace from previous location where exception was thrown ---&#x000D;&#x000A;   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)&#x000D;&#x000A;   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)&#x000D;&#x000A;   at Microsoft.VisualStudio.Threading.JoinableTask.CompleteOnCurrentThread()&#x000D;&#x000A;   at Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.ApartmentMarshaler.Invoke(Func`1 method)&#x000D;&#x000A;   at Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProjectEngineShim.Initialize(IntPtr instResources, Object sp, Object browser, IVCBuildPackageInternal bldPkg)</description>
    <guid>{F1C25864-3097-11D2-A5C5-00C04F7968B4}</guid>
    <hr>8005050a</hr>
    <errorinfo></errorinfo>
  </entry>
  <entry>
    <record>245</record>
    <time>2017/08/22 05:07:15.009</time>
    <type>Error</type>
    <source>VisualStudio</source>
    <description>SetSite failed for package [Visual C++ Project System Package](null)</description>
    <guid>{F1C25864-3097-11D2-A5C5-00C04F7968B4}</guid>
    <hr>8005050a</hr>
    <errorinfo></errorinfo>
  </entry>
  <entry>
    <record>246</record>
    <time>2017/08/22 05:07:15.010</time>
    <type>Error</type>
    <source>VisualStudio</source>
    <description>End package load [Visual C++ Project System Package]</description>
    <guid>{F1C25864-3097-11D2-A5C5-00C04F7968B4}</guid>
    <hr>8005050a</hr>
    <errorinfo></errorinfo>
  </entry>

我尝试禁用所有其他第三方扩展并重新启动 VS,并在启动时打开以下窗口:

  • C# 交互
  • 错误列表
  • 任务列表
  • 命令窗口
  • 输出
  • 测试浏览器
  • 解决方案资源管理器
  • 团队资源管理器
  • 起始页

然后启用PVS并重新启动VS:我收到错误消息

“Visual C++ 项目系统包”未正确加载。

  <entry>
    <record>1784</record>
    <time>2017/08/24 19:55:34.094</time>
    <type>Information</type>
    <source>VisualStudio</source>
    <description>Begin package load [Visual C++ Project System Package]</description>
    <guid>{F1C25864-3097-11D2-A5C5-00C04F7968B4}</guid>
  </entry>
  <entry>
    <record>1785</record>
    <time>2017/08/24 19:55:34.097</time>
    <type>Error</type>
    <source>VisualStudio</source>
    <description>LegacySitePackage failed for package [Visual C++ Project System Package]Source: &apos;Microsoft.VisualStudio.Project.VisualC.VCProjectEngine&apos; Description: No platforms have been found on this installation.&#x000D;&#x000A;System.Runtime.InteropServices.COMException (0x8005050A): No platforms have been found on this installation.&#x000D;&#x000A;   at Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProjectEngineShim.&lt;ReadInstalledPlatformsAsync&gt;d__260.MoveNext()&#x000D;&#x000A;--- End of stack trace from previous location where exception was thrown ---&#x000D;&#x000A;   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)&#x000D;&#x000A;   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)&#x000D;&#x000A;   at Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProjectEngineShim.&lt;&gt;c__DisplayClass55_0.&lt;&lt;Initialize&gt;b__0&gt;d.MoveNext()&#x000D;&#x000A;--- End of stack trace from previous location where exception was thrown ---&#x000D;&#x000A;   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)&#x000D;&#x000A;   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)&#x000D;&#x000A;   at Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.ApartmentMarshaler.&lt;&gt;c__DisplayClass7_0.&lt;&lt;Invoke&gt;b__0&gt;d.MoveNext()&#x000D;&#x000A;--- End of stack trace from previous location where exception was thrown ---&#x000D;&#x000A;   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)&#x000D;&#x000A;   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)&#x000D;&#x000A;   at Microsoft.VisualStudio.Threading.JoinableTask.CompleteOnCurrentThread()&#x000D;&#x000A;   at Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.ApartmentMarshaler.Invoke(Func`1 method)&#x000D;&#x000A;   at Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProjectEngineShim.Initialize(IntPtr instResources, Object sp, Object browser, IVCBuildPackageInternal bldPkg)</description>
    <guid>{F1C25864-3097-11D2-A5C5-00C04F7968B4}</guid>
    <hr>8005050a</hr>
    <errorinfo></errorinfo>
  </entry>
  <entry>
    <record>1786</record>
    <time>2017/08/24 19:55:34.100</time>
    <type>Error</type>
    <source>VisualStudio</source>
    <description>SetSite failed for package [Visual C++ Project System Package](null)</description>
    <guid>{F1C25864-3097-11D2-A5C5-00C04F7968B4}</guid>
    <hr>8005050a</hr>
    <errorinfo></errorinfo>
  </entry>
  <entry>
    <record>1787</record>
    <time>2017/08/24 19:55:34.102</time>
    <type>Error</type>
    <source>VisualStudio</source>
    <description>End package load [Visual C++ Project System Package]</description>
    <guid>{F1C25864-3097-11D2-A5C5-00C04F7968B4}</guid>
    <hr>8005050a</hr>
    <errorinfo></errorinfo>
  </entry>

然后我删除了组件缓存文件夹: 我仍然收到错误。

使用ClearMEFComponentCache 清理。 重启PVS,现在无法重现。

其他信息:我已升级到 VS 15.3.2

  • 在运行 ClearMEFComponentCache 之前,我在 %appdata%\Microsoft\VisualStudio 中有几个文件夹,即 14.015.015.0_aaea4580,其中有 ComponentCache 文件夹。 现在我只有15.0_aaea4580 文件夹。
  • VS 在管理员模式下打开。

【问题讨论】:

  • 谢谢,我们知道这个问题,目前正在努力解决它。
  • 我是否正确理解问题已通过运行 ClearMEFComponentCache 得到解决?如果是这样,您的 VS 安装可能有些损坏 - 也许您之前有 Visual C++ 组件,后来又卸载了它们? PVS-Studio VS 扩展确实与 Visual C++ VS 组件交互,如果它们存在的话。在 PVS-Studio 尝试访问它们之后,IDE 似乎试图加载不存在的 C++ 组件,因为 IDE 没有“意识到”它们以某种方式丢失。
  • 我试着记下我为重现错误所做的每一步,并且一次只做一个步骤。在运行 ClearMEFComponentCache 之后,问题就消失了。所以我 认为 这就是解决方案,但我没有检查它是否清除的不仅仅是 ComponentCache 文件夹。一个有点坏的 VS 安装听起来不错。我最近重新安装了 PC 并安装了 VS 15.2。在我尝试升级到 VS 15.3 但安装时遇到一些麻烦的第二天。如果我没记错的话,我卸载了 VS 并安装了 VS15.3。

标签: pvs-studio


【解决方案1】:

很遗憾,我们目前无法重现该问题。或者,更准确地说,我们无法按照您的情况可能出现的方式重现它。通过为 devenv.exe 进程指定错误的 MSBUILD_EXE_PATH 环境变量值,我们能够导致 Visual C++ IDE 包失败,但您的情况很可能与此不同。

您能否详细说明当您启动 Visual Studio 并在您提供的活动日志中出现错误时会发生什么 - IDE 会崩溃吗?它的某些组件是否无法正确加载?如果 IDE 运行没有问题,您可以忽略日志中的警告。 如果有问题,请尝试删除 %UserProfile%\AppData\Local\Microsoft\VisualStudio\ 目录下的 'ComponentModelCache' 文件夹。

【讨论】:

  • 我在全新安装 VS 2017 的全新 PC 上收到了同样的错误。我没有注意到任何不工作(我正在做 C# 开发,而不是 C++)我假设我可以安全地忽略...
  • @Daryl 你试过ClearMEFComponentCache 工具吗?
猜你喜欢
  • 1970-01-01
  • 2015-12-09
  • 1970-01-01
  • 1970-01-01
  • 2013-02-11
  • 2011-04-27
  • 2014-12-05
  • 2017-05-28
  • 1970-01-01
相关资源
最近更新 更多