GAC 32 бит против 64 бит - PullRequest
36 голосов
/ 28 июня 2011

Я долго искал, пытаясь понять это лучше, но не нахожу никаких простых ответов на этот вопрос.

У меня есть компонент, который мне нужно добавить в GAC. Я использую 64-разрядную версию Windows 7 и, пытаясь устранить проблему (SSIS 2005 не распознает DLL), я пытаюсь убедиться, что у меня DLL (.NET 4.0) зарегистрирована в соответствующем GAC ,

Итак, вот мои вопросы:

  1. Где находятся физические расположения в Windows 7 для 64-битных и 32-битных GAC? Я знаю о C: \ Windows \ assembly, но не уверен, что это и где другой.

  2. Какую версию gacutil я использую для добавления сборки в 64-битный GAC? 32-битный GAC? Я знаю о 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 бита?)

Ответы [ 2 ]

21 голосов
/ 28 июня 2011

gacutil.exe должен установить .dll в нужное место в зависимости от того, как он был скомпилирован. Вы должны быть в состоянии найти файл здесь: %ProgramFiles%\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\

.NET 4 имеет собственную папку сборки (c:\windows\Microsoft.NET\assembly), в которой есть каталоги \GAC_32 и \GAC_64 внутри ... Здесь вы найдете свои файлы после их установки.

Надеюсь, это поможет ...

0 голосов
/ 27 июня 2017

Для Windows 10 :

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

...