GAC 32bit vs. 64bit

本文关键字:64bit vs 32bit GAC | 更新日期: 2023-09-27 18:00:31

我已经搜索了一段时间,试图更好地理解这一点,但没有找到任何直接的答案。

我有一个组件需要添加到GAC中。我运行的是Windows 7 64位,为了解决问题(SSIS 2005无法识别DLL),我正在努力确保在正确的GAC中注册了DLL(.NET 4.0)。

以下是我的问题:

  1. 64位和32位GAC在Windows7中的物理位置在哪里?我知道C:''Windows''assembly,但不确定这是哪一个,另一个在哪里。

  2. 我应该使用哪个版本的gautil将程序集添加到64位GAC?32位GAC?我知道C:''Program Files(x86)''Microsoft Visual Studio 10.0''VC,我假设这是32位的,但不确定64位的gautil在哪里。

  3. 是什么决定应用程序在哪个GAC中查找程序集?我认为这是由应用程序是64位还是32位决定的,但我想知道它是否还有更多。

提前谢谢。

更新:

在深入研究了ShaneBlake的以下答案后,我想起了.NET 2.0和.NET 4.0的GAC位于不同的位置。因此:

.NET 2.0 GAC:
c:'windows'assembly(32位和64位?)

.NET 4.0 GAC
c:'windows'Microsoft.NET'assembly'GAC_32(仅限32位)
c:'windows'Microsoft.NET'assembly'GAC_64(仅限64位)
c:'windows'Microsoft.NET'assembly'GAC_MSIL(32位和64位?)

GAC 32bit vs. 64bit

gacutil.exe应根据编译方式将.dll安装到正确的位置。你应该可以在这里找到文件:%ProgramFiles%'Microsoft SDKs'Windows'v7.0A'bin'NETFX 4.0 Tools'

.NET 4有自己的Assembly文件夹(c:'windows'Microsoft.NET'assembly),其中包含'GAC_32'GAC_64目录。。。安装文件后,您可以在这里找到它们。

希望能有所帮助。。。

对于Windows 10

C: ''Program Files(x86)''Microsoft SDK ''Windows''v7.0A''Bin