2012-02-09 3 views
2

Я использую пространство имен System.Windows.Forms.DataVisualization.Charting для создания объекта Chart на форме. Эта DLL не является частью базовой установки Windows, поэтому мне нужно будет включить ее в свой пакет, когда я распространяю свое приложение..NET 4.0 GAC - Невозможно добавить DLL

Мне известно о new version of GacUtil.exe, а также о том, что Gacutil.exe is only for development purposes and should not be used to install production assemblies into the global assembly cache. Давайте просто предположим, что у меня нет выбора в этом вопросе, и это необходимо сделать из-за использования запатентованной системы распределения пакетов. =)

Edit/Update: В среде выполнения 2.0, хотя некоторые ПК не имеют Gacutil.exe подарок на конктретном ПК, я мог бы упасть Gacutil.exe (версия 2.0) на ПК, и я мог бы затем GAC вне всяких дополнительных сборок, которые мне нужны. Это, по-видимому, проблема в среде выполнения 4.0. Несмотря на то, что я скопировал GacUtil.exe (4.0) на целевой компьютер, я не получаю обратной связи при его запуске против необходимой сборки. End Edit/Update

Теперь на моем ПК (ПК разработки), я могу добавить DLL в GAC без каких-либо проблем: Command Prompt On My PC

Однако на чистую Windows 7 PC, с той же DLL и той же версии GacUtil.exe Я получаю это: Command Prompt On Clean PC

Почему разница? Новый GacUtil.exe зависит от того, чего нет у этого ПК?

+0

Это не может быть чистая машина, если доступен gacutil.exe. Путь, который вы проходите, не имеет смысла, вы просите gacutil установить сборку из GAC в GAC. –

+0

@ HansPassant Спасибо, что посмотрели - и вы, вероятно, намекаете на мое незнание нового GacUtil/GAC (и вы правы). =) Я обновил свой вопрос (см. «Редактирование/обновление») и изменил скриншот, чтобы отразить текущую ситуацию. –

ответ

3

Хорошо, я закончил тем, что две проблемы, одна из которых является спорным вопросом в конце концов.

Проблема № 1: Gacutil.exe (для CLR 4.0) имеет зависимости

Когда я скопировать папку, в которой Gacutil.exe проживает, проблема добавления узла обращается в нуль: Successful GAC on Clean PC

Однако это оказалось спорным вопросом, потому что хотя файл находился в 4.0 GAC на клиентской машине, у меня все еще был сбой. В этот момент я понял, что проблема в том, что я не таргетинг 4.0 GAC - я нацелен на 2.0 GAC. Файл, который я пытался добавить в GAC все это время, был версией 4.0. Это была часть, которую я не понимал.

Проблема № 2: Есть отдельные 4.0 и 2.0 версии «GACable» DLL файлов, и они не совместимы

Я просто вернулся к моей машине развития и схватился версия DLL 3.5 в вопрос (System.Windows.Forms.DataVisualization), добавили его в 2.0 GAC на клиентском ПК и предотвратили кризис.

0

Вы можете запустить 4.0 Gacutil из собственной папки, если добавить «» подкаталог и включают в себя файл, gacutlrc.dll, который можно найти в той же папке, вложенной в стандартном месте.

 Смежные вопросы

  • Нет связанных вопросов^_^