37

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

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

所以这是我的问题:

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

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

  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 位?)

4

2 回答 2

23

gacutil.exe 应该将 .dll 安装到正确的位置,具体取决于它的编译方式。您应该可以在此处找到该文件:%ProgramFiles%\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\

.NET 4 有它自己的 Assemblyc:\windows\Microsoft.NET\assembly文件夹\GAC_32\GAC_64

希望有帮助...

于 2011-06-28T14:18:28.480 回答
0

对于Windows 10

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin

于 2017-06-27T05:57:59.630 回答