警告 MSB3283:找不到类型库“MSComctlLib”的包装程序集。构建我的应用程序时
Posted
技术标签:
【中文标题】警告 MSB3283:找不到类型库“MSComctlLib”的包装程序集。构建我的应用程序时【英文标题】:Warning MSB3283: Cannot find wrapper assembly for type library "MSComctlLib". When building my app 【发布时间】: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 上遇到了完全相同的问题。答案仍然有效。我认为微软可以通过执行或不执行更新来让工作解决方案失败,这对微软来说是一个很大的耻辱...... 【参考方案1】:尽管 IT 推送 Windows 更新的可能性很小
它并不小。今年有 两个 安全更新修补了 mscomctl。也很重要,没有 IT 部门会跳过它们。 MS12-027 于 4 月发布,MS12-060 于 8 月发布。特别是 4 月的更新意义重大,它改变了 COM 服务器的 guid。这意味着互操作库(又名包装程序集)不再有效。
删除并重新添加要修复的依赖项。
请注意,跳过这些更新的客户可能会遇到麻烦。你真的应该考虑摆脱依赖。 mscomctl 中没有任何东西不能很好地包装在 .NET 框架中,所有 VB6 控件都有很好的替代品。
【讨论】:
以上是关于警告 MSB3283:找不到类型库“MSComctlLib”的包装程序集。构建我的应用程序时的主要内容,如果未能解决你的问题,请参考以下文章
C++ Windows 驱动程序 MSB3030 无法复制文件 '' 因为找不到
Teamcity:错误 MSB3147:找不到所需的文件“setup.bin”
找不到资源文件“**/*.resx”。 (MSB3552) 在 VS for Mac 上
MSB3021 在 Visual Studio 中运行 Service Fabric 应用时无法复制文件找不到部分路径错误