我一直在寻找一段时间试图更好地理解这一点,但没有找到任何直接的答案。
我有一个需要添加到 GAC 的组件。我正在运行 Windows 7 64 位,并且为了解决问题(SSIS 2005 无法识别 DLL),我试图确保我在正确的 GAC 中注册了 DLL (.NET 4.0) .
所以这是我的问题:
Windows 7 中 64 位和 32 位 GAC 的物理位置在哪里?我知道 C:\Windows\assembly,但不确定这是哪一个,另一个在哪里。
我使用哪个版本的 gacutil 将程序集添加到 64 位 GAC?32位广汽?我知道 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC,我假设这是 32 位的,但不确定 64 位 gacutil 在哪里。
什么决定了应用程序在哪个 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 位?)