簡體   English   中英

x64 C ++ / CLI程序集仍然引用x86 .NET庫

[英]x64 C++/CLI assemblies still reference to x86 .NET libraries

我的開發環境是Visual Studio2010。我在C ++項目中使用托管代碼,使用/CLI標志進行編譯,並使用.NET DLL添加/FU

當我使用32位目標計算機進行編譯時,一切正常,但是當編譯為64位時,似乎編譯器仍在使用x86 .NET DLL。

此外,“ 項目屬性”->“公共屬性”->“框架和引用”->“(系統)程序集引用屬性”->“相對路徑” (不可編輯)中的相對路徑指向x86文件。

有解決方案嗎?

這是完全正常的, 不是問題。 引用程序集僅由編譯器用於檢索元數據,即程序集中類型的聲明。 等效於本機C ++中的.h文件。 這些聲明依賴於目標體系結構。

體系結構依賴性在運行時解決。 對於包含本機代碼(mscorlib.dll,System.Data.dll,PresentationFramework.dll)的.NET Framework程序集,將從其他GAC子目錄中檢索正確的程序集。 GAC_32子目錄包含具有32位本機代碼的程序集,GAC_64用於64位,GAC_MSIL的程序集包含純IL,因此不依賴於體系結構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM