Я пытаюсь добавить.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 Инструменты" на моей локальной машине к папке "C:\Windows\Microsoft.NET\Framework\v4.0.30319" на целевом рабочем сервере на предложения, найденные здесь.
Я затем пытался копировать их в "C:\Windows\Microsoft.NET\Framework64\v4.0.30319".
Выполнение от обоих мест указало на успешную установку. И действительно, регистрация кажется успешной:
Однако запуская консольное приложение, которое относится к версии (на 64 бита) dll ошибок со следующим сообщением:
Система. IO.FileNotFoundException: не Мог загрузить файл или блок 'ChilkatDotNet4.dll' или одна из его зависимостей. Указанный модуль не мог быть найден. Имя файла: 'ChilkatDotNet4.dll'
Так, я теперь вручную создал следующие записи GAC с помощью mkdir и копию с командной строки (который может или не может на самом деле работать. У меня нет подсказки, что является настолько особенным о gacutil.exe):
После каждой "установки" dll я протестировал и получил ту же ошибку. Любые приветствующиеся идеи!
Править: проблемой GAC выше не может на самом деле быть преступник. Оказывается, даже когда я создаю совершенно новый Консольный проект Приложения и добавляю .dll непосредственно (так, чтобы он жил в мусорном ведре), я все еще не могу работать на нем разъединение. Кроме того, я отметил, что Консольные приложения создаются, предназначаясь для.NET 4.0 Клиентских Профиля, а не Платформа.NET 4. Когда я пытаюсь выполнить его предназначающийся для клиентского профиля, кажется что ни одна из Системы. Сеть* библиотеки доступна. Однако я пытался запустить очень простое тестовое приложение, предназначающееся для обоих, и ни один не будет работать на сервере при ссылке на плохой .dll.
Существует ли специальный вид установки, которая должна была произойти для выполнения.NET 4.0 Консольных Приложения?
Для всех, у кого могут возникнуть проблемы с этим в будущем. Это не была общая проблема с тем, как я регистрировал dll в GAC или как я ссылался на нее из своих проектов.
ChilkatDotNet4.dll (и другие версии, я уверен) была создана в Visual C++. Таким образом, на сервере, на который она устанавливается, должен быть установлен Visual C++ Runtime для соответствующей архитектуры процессора.
Для 2010 (.NET 4.0):
Если вы запускаете приложение x86 на 64-битной платформе. Обязательно отметьте пул приложений параметром "Enable 32-bit applications" = true.