解决VS 2010中编译程序时弹出"Type universe cannot resolve assembly"的错误
2011-08-01 16:39
976 查看
在使用VS 2010编译程序时有时候会遇到"Type universe cannot resolve assembly"的错误,从而导致程序编译出错,如下图。
如果你对这个错误信息感觉到很迷惑,说明你不太理解什么是"Type universe"。Type universe其实是deployment framework中所有类型和程序集的集合,换句话说,这个错误信息其实是告诉你System.Design.dll在目标framework中不存在。
为什么会这样呢?
Microsoft Visual Studio的开发团队决定在VS 2010中将应用程序默认的目标framework设置成了.NET Framework 4 Client Profile,这样做主要是为了在客户端对应用程序的部署进行优化,如减小程序部署时package的大小,部署的时间,提高应用程序的可靠性以及性能等等。
不幸的是许多用户和开发人员没有意识到这一点。例如我曾经在应用程序中使用一个开源的UI框架名字叫DockPanel,编译程序的时候就遇到过这种问题。要想真正解决这个问题其实是需要去修改这个框架的源代码然后重新生成程序集并重新在应用程序中引用,但是这很难做到。
按照错误的提示信息,该错误主要是因为我们将第三方控件从VS 2010的工具箱拖放到窗体上,控件在设计时所需要的类依赖于System.Design.dll程序集,而该程序集并没有包含在Client Profile的.NET Framework框架中而产生的。我们可以在控件的源代码中添加设计时所需要的类,但是这样做显然不够好。在VS 2010中一个变通的方法是将Target framework修改成非Client Profile的Framework,然后重新编译应用程序。
如果你对这个错误信息感觉到很迷惑,说明你不太理解什么是"Type universe"。Type universe其实是deployment framework中所有类型和程序集的集合,换句话说,这个错误信息其实是告诉你System.Design.dll在目标framework中不存在。
为什么会这样呢?
Microsoft Visual Studio的开发团队决定在VS 2010中将应用程序默认的目标framework设置成了.NET Framework 4 Client Profile,这样做主要是为了在客户端对应用程序的部署进行优化,如减小程序部署时package的大小,部署的时间,提高应用程序的可靠性以及性能等等。
不幸的是许多用户和开发人员没有意识到这一点。例如我曾经在应用程序中使用一个开源的UI框架名字叫DockPanel,编译程序的时候就遇到过这种问题。要想真正解决这个问题其实是需要去修改这个框架的源代码然后重新生成程序集并重新在应用程序中引用,但是这很难做到。
按照错误的提示信息,该错误主要是因为我们将第三方控件从VS 2010的工具箱拖放到窗体上,控件在设计时所需要的类依赖于System.Design.dll程序集,而该程序集并没有包含在Client Profile的.NET Framework框架中而产生的。我们可以在控件的源代码中添加设计时所需要的类,但是这样做显然不够好。在VS 2010中一个变通的方法是将Target framework修改成非Client Profile的Framework,然后重新编译应用程序。
相关文章推荐
- "List cannot be resolved to a type"错误的解决方法
- 前向定义导致 程序编译出现"field has incomplete type"问题的解决
- VS2012与VS2015同时安装用VS2012创建MFC程序时弹出编译错误”fatal error C1083: 无法打开包括文件:“mprapidef.h”: No such file or directory”的解决办法
- 程序编译是出现"field has incomplete type"问题的解决
- 解决在eclipse中配置Tomcat时,出现"Cannot create a server using the selected type"的错误
- On the error "Type universe cannot resolve assembly" ( in VS2010 using WeifenLuo.WinFormsUI.Docking.dll)
- Qt程序编译是出现"field has incomplete type"问题的解决(转)
- 程序编译是出现"field has incomplete type"问题的解决
- "XX cannot be resolved to a type "eclipse报错(工程图标出现红叉符号)及解决说明
- ClickOnce报错的解决:VS 2010 RTM returns Error: "Cannot publish because a project failed to build"
- "XX cannot be resolved to a type "eclipse报错及解决说明
- 解决IDEA的"Cannot run program "git.exe": CreateProcess error=2, 系统找不到指定的文件"错误
- 编译boost程序出现如下错误fatal error LNK1104: cannot open file 'libboost_system-vc100-mt-gd-1_54.lib'的解决方法
- VS2012 编译程序时报无法载入PDB文件错误解决方式
- "cannot modify header information - headers already sent by"的错误怎么解决
- VS2003下DirectShow范例程序LNK2019编译错误的解决方法
- 解决 android studio 编译错误 failed to resolve "com.google.zxing"
- win7 "ClassFactory cannot supply requested class" in VS 2008的错误解决方法
- VS2013下MFC和.net混合编程编译XP兼容程序时的C1107错误的解决方法
- "XX cannot be resolved to a type "eclipse报错及解决