繁体   English   中英

从 64 位应用程序引用 .net 1.1 程序集

[英]Referencing .net 1.1 assemblies from 64 bit applications

我必须将项目从 32 位升级到 64 位。 我的项目目前在 .net 2.0 上(很快就会是 4.0,但对于这个问题并不重要)。 我的项目引用了一些旧的 .net 1.1 程序集,我只有二进制形式。 众所周知,仅在 .net 2.0 中添加了 64 位支持,我预计我的应用程序不会因为这些旧程序集而运行。

但是,我的应用程序在引用 .net 1.1 dll 时以 64 位模式在 x64 服务器上运行(任务管理器中未显示星号)。

我的问题是:

  1. 为什么会运行? 我之前读到您不能在 64 位应用程序中使用 .net 1.1 程序集。
  2. 如果我保留 1.1 程序集,有什么缺点吗? 或者我应该投入精力获得那些 1.1 程序集的更新版本?

编辑:我忘了提到要求是以 64 位本地运行应用程序(asp.net)。 该应用程序以 64 位运行,因为我在我的应用程序池上禁用了 32 位兼容性。

EDIT2:我只是尝试编译并运行为 x64 编译的应用程序。 有用。 所以它以纯 64 位模式运行,毫无疑问。

.NET 1.1 组件包含与 .NET 2 或 .NET 4 组件相同类型的 IL。 只有元数据的格式发生了变化。 抖动不介意将其转换为 64 位机器代码,CLR 可以读取旧的元数据格式。 只有当 .NET 1.1 程序集包含本机代码时,您才会遇到问题。 Corflags.exe 实用程序,ILONLY 位。 没有令人信服的理由来重建该程序集。

您的应用程序是否在 wow32(32 位仿真模式)下运行? 大多数应用程序并不真正在 x64 模式下运行,它们强制应用程序在 wow32(x86 模式)下运行,以保持其在旧 x86 系统上的向后兼容性。 否则,应用程序将只能在 x64 系统上运行,而不能在 x86 上运行。

强制应用程序在 x86 模式下运行(即使在 x64 系统上)允许运行任何机器,无论它是 32 位还是 64 位 windows 操作系统。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM