Как сделать мою DLL глобальной без gacutil?

Я хочу иметь возможность использовать свою глобальную DLL, чтобы мой exe работал, даже если DLL не находится в том же каталоге, что и EXE. Итак, я много читал о Global Assembly Cache, и в нем говорится, что мне нужно использовать gacutil.exe для регистрации DLL.

Есть несколько проблем: я не знаю, где находится gacutil.exe, кажется, что он всегда находится где-то еще в каждой системе. Поэтому мне пришлось бы использовать рекурсивный поиск gacutil.exe, и это замедлило бы установку моей DLL. Или, может быть, проверьте какие-нибудь ключи реестра.

В Windows XP я установил .NET 4 Framework, но нигде не нашел gacutil.exe.

Я просто пытался скопировать gacutil.exe, но exe не работает сам по себе.

Есть ли простой способ зарегистрировать мою DLL в GAC? Я не хочу возиться с gacutil. И я не хочу указывать своим клиентам перетаскивать библиотеки DLL в папку GAC. Мне нужна автоматическая установка моей DLL. Или общесистемный РАБОЧИЙ инструмент, такой как regsvr32 в старые времена COM ...


person MilMike    schedule 09.11.2013    source источник
comment
Вам просто нужно отбросить идею о том, что автоматическая установка - это возможный или приемлемый способ развернуть код, который имеет общесистемные эффекты. Никто не любит, когда его машина так портится. Если вы облажались, владелец машины чертовски потратил время на выяснение причины и решения проблемы. Если молчание действительно означает, что он должен просто работать, то тоже поцарапайте, вам действительно нужно создать установщик. Используйте локальное развертывание, если все это звучит непривлекательно, в любом случае это лучшее решение DLL Hell.   -  person Hans Passant    schedule 09.11.2013
comment
возможный дубликат Что «правильно» способ регистрации / установки сборки в GAC?   -  person oefe    schedule 09.11.2013


Ответы (2)


Одно из решений - использовать метод GacInstall, описанный ниже: MSDN

Для получения дополнительной информации см. Следующий ответ.

person Maxim Kornilov    schedule 09.11.2013

Вы можете легко распространять утилиту gacutil со своей сборкой, просто скопируйте ее вместе с ней. Итак, во время установки вы запускаете gacutil из установочной папки.

person Yevgeniy.Chernobrivets    schedule 09.11.2013
comment
gacutil - это инструмент разработки, и его не следует использовать для развертывания на машинах конечных пользователей blogs.msdn.com/b/astebner/archive/2006/11/04/ - person oefe; 09.11.2013