簡體   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