【问题标题】:What are the differences between managed and unmanaged libraries?托管库和非托管库之间有什么区别?
【发布时间】:2014-12-04 17:20:33
【问题描述】:

您能告诉我外部托管库和非托管库之间有哪些变化吗? 托管代码和非托管代码完全相同吗?

【问题讨论】:

标签: c# visual-studio


【解决方案1】:

是的,托管库包含 .NET 代码(也称为程序集),非托管库包含某种本机代码(C++、VB6 或类似代码)。

外部通常意味着您没有自己编译,而是使用了 3rd 方组件。

检查是否作为程序集被管理,

  • dotPeek打开。如果是 .NET,它会显示类似“msil”的内容,否则会显示“不支持”。
  • 另一个选项是ILSpy,它将显示“此文件不包含托管程序集”。
  • 工具 ILDASM 随 Windows SDK 一起提供,在本机程序集的情况下会显示“没有有效的 CLR 标头”。
  • 您还可以查看它是否具有 mscoree (.NET) 作为dependency

【讨论】:

  • @missenna:我已将其添加到我的答案中。目前我认为您希望使用一些工具来检查 .NET,而不是一些代码。
  • 如何使用 dotPeek?
  • 对如何处理此类消息有何建议?
  • @not2qubit: 哪些消息?
  • @ThomasWeller "此文件不包含托管程序集。"
猜你喜欢
  • 2011-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-14
  • 1970-01-01
  • 2011-03-23
  • 2012-03-12
  • 1970-01-01
相关资源
最近更新 更多