【问题标题】:Warning MSB3283: Cannot find wrapper assembly for type library "MSComctlLib". When building my app警告 MSB3283:找不到类型库“MSComctlLib”的包装程序集。构建我的应用程序时
【发布时间】:2012-10-09 10:19:22
【问题描述】:

我有一个已经存在多年的 Visual Studio 解决方案。该项目是一个 Visual Studio 2010 项目,多年来我一直能够编译和运行该项目。此应用程序是一个关键应用程序,我很少需要启动项目并对已发现的错误修复进行细微更改。

今天,我需要做一些研究。我在旧的 Windows XP 开发盒上打开了这个项目,这是我多年来开发的同一台机器。我很确定这台机器上没有任何变化,尽管 IT 部门推送了我可能不知道的 Windows 更新的可能性很小。

我打开了我的项目,并立即点击了工具栏上的“运行”按钮。该应用程序将不再编译。它到达解决方案中的最后一个项目(共 7 个)并给我以下输出:

------ Build started: Project: QSApplication, Configuration: Debug Any CPU ------
c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1558,9): warning MSB3283: Cannot find wrapper assembly for type library "MSComctlLib".
========== Build: 7 succeeded or up-to-date, 1 failed, 0 skipped ==========

我被难住了。我没有更改任何项目或构建设置,我怀疑这台机器上是否有任何重大更改。我找不到任何有用的信息来查询这个错误,所以我不知道发生了什么。

有没有人看到这个或知道修复?

【问题讨论】:

  • 我今天在 VS2015 和 windows 10 上遇到了完全相同的问题。答案仍然有效。我认为微软可以通过执行或不执行更新来让工作解决方案失败,这对微软来说是一个很大的耻辱......

标签: visual-studio-2010 visual-studio windows-xp


【解决方案1】:

尽管 IT 推送 Windows 更新的可能性很小

它并不小。今年有 两个 安全更新修补了 mscomctl。也很重要,没有 IT 部门会跳过它们。 MS12-027 于 4 月发布,MS12-060 于 8 月发布。特别是 4 月的更新意义重大,它改变了 COM 服务器的 guid。这意味着互操作库(又名包装程序集)不再有效。

删除并重新添加要修复的依赖项。

请注意,跳过这些更新的客户可能会遇到麻烦。你真的应该考虑摆脱依赖。 mscomctl 中没有任何东西不能很好地包装在 .NET 框架中,所有 VB6 控件都有很好的替代品。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 2018-09-03
    • 2011-05-11
    • 1970-01-01
    相关资源
    最近更新 更多