Я пытаюсь добавить .NET 4.0 .dll в GAC. Я пытаюсь сделать это, потому что он публикуется сторонней компанией как 32- и 64-битный .dll, который я должен использовать из разных приложений на разных платформах в обоих форматах.
В любом случае, у меня возникают проблемы при регистрации этой библиотеки DLL в GAC в среде Windows Server 2008.
Я попытался скопировать файл gacutil.exe (и вспомогательный файл), находящийся по адресу "C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0 Tools" на моем локальном компьютере, в "C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 "на целевом производственном сервере в соответствии с найденными предложениями здесь .
Затем я попытался скопировать их в «C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319».
Запуск из обоих мест указывает на успешную установку. И действительно, регистрация выглядит успешной:
- C: \ Windows \ Microsoft.NET \ сборка \ GAC_64 \ ChilkatDotNet4 \ v4.0_9.0.8.0__eb5fc1fc52ef09bd \ ChilkatDotNet4.dll
- C: \ Windows \ Microsoft.NET \ сборка \ GAC_32 \ ChilkatDotNet4 \ v4.0_9.0.8.0__eb5fc1fc52ef09bd \ ChilkatDotNet4.dll
Однако при запуске консольного приложения, которое ссылается на (64-битную) версию DLL-ошибок, появляется следующее сообщение:
System.IO.FileNotFoundException: может
не загружать файл или сборку
'ChilkatDotNet4.dll' или один из его
зависимостей. Указанный модуль
невозможно найти. Имя файла:
'ChilkatDotNet4.dll'
Итак, я теперь вручную создал следующие записи GAC, используя mkdir, и скопировал их из командной строки (что может работать, а может и не работать). Я понятия не имею, что такого особенного в gacutil.exe):
- C: \ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \ ChilkatDotNet4 \ v4.0_9.0.8.0__eb5fc1fc52ef09bd \ ChilkatDotNet4.dll (с использованием 64-битной версии dll)
- C: \ Windows \ сборка \ GAC_64 \ ChilkatDotNet4 \ v4.0_9.0.8.0__eb5fc1fc52ef09bd \ ChilkatDotNet4.dll
- C: \ Windows \ сборка \ GAC_32 \ ChilkatDotNet4 \ v4.0_9.0.8.0__eb5fc1fc52ef09bd \ ChilkatDotNet4.dll
После каждой «установки» dll я тестировал и получал одну и ту же ошибку. Любые идеи приветствуются!
РЕДАКТИРОВАТЬ : проблема GAC, описанная выше, на самом деле не может быть виновником. Оказывается, даже когда я создаю совершенно новый проект консольного приложения и напрямую добавляю .dll (чтобы он находился в корзине), я все равно не могу запустить его на сервере. Кроме того, я отметил, что консольные приложения создаются для профиля клиента .NET 4.0, а не для .NET Framework 4. Когда я пытаюсь запустить его для профиля клиента, оказывается, что ни одна из библиотек System.Web * недоступна , Однако я попытался запустить очень простое тестовое приложение, нацеленное на оба, и ни одно из них не запустилось бы на сервере, ссылаясь на плохой .dll.
Существует ли особый тип установки для запуска консольных приложений .NET 4.0?