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

标签 c# .net 64-bit

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

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

我的问题是:

  1. 它为什么运行?我之前读到你不能使用 .net 1.1 64 位应用程序中的程序集。
  2. 保留1.1的程序集有什么缺点吗?还是我应该努力获取这些 1.1 程序集的更新版本?

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

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

最佳答案

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

关于c# - 从 64 位应用程序引用 .net 1.1 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6747266/

相关文章:

c# - 异步方法阻塞未等待的任务

c# - 使用 LINQ 查找给定素数数组的数字的除数数

c++ - x64 汇编、ret 寄存器和变量

java - Eclipse Helios x86 在 Windows 7 x64 上出现问题,即使在干净的系统上也是如此

c# - linq中的关键字是什么?

c# - CacheManager 内存缓存配置

c# - 在 TreeView 中添加子节点

asp.net - 运行 IIS Express 时 ASP.NET 网站的程序集在哪里

.net - 定时器效率

汇编 64 位 - movl、movq。换车好吗?