Почему загрузчик сборки не проверяется в GAC для сборки в смешанном режиме C ++ / CLI? - PullRequest
0 голосов
/ 03 февраля 2011

У меня есть проект C #, который ссылается на сборку смешанного режима C ++ / CLI. Эта сборка хранится в папке в PATH, и она также присутствует в GAC, но когда она выполняется, я получаю:

System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'PcsSocketCommunications500, версия = 0.0.0.0, культура = нейтральная, PublicKeyToken = null'

Версия 0.0.0.0 состоит в том, что C ++ / CLI не имеет класса версии Assembly, но, насколько я знаю, это не должно быть проблемой.

Запуск монитора процессов. Я видел, что система просто ищет сборку в той же папке, что и основной процесс ... Я не эксперт по загрузке сборок, но я ожидал увидеть, по крайней мере, некоторые запросы GAC и ' возможно 'некоторые поиски PATH .. Вот что я получил (PcsSocketCommunication500.dll - это сборка C ++ / CLI, а черным - это рабочий каталог):

enter image description here

Есть идеи, почему загрузчик не проверяет GAC или PATH?

1 Ответ

2 голосов
/ 03 февраля 2011

PublicKeyToken = нуль

Сборка не имеет строгого имени. Это означает, что он не может быть расположен в GAC, CLR не будет искать там. Не уверен, что вы сделали, чтобы попасть в GAC, но это не должно быть возможным как есть.

...