MonoDevelop Компиляция и GAC

Я немного смущен тем, что здесь происходит.

Насколько я понимаю, когда требуется сборка во время выполнения, среда выполнения сначала пытается загрузить сборку из исполняющего каталога (или каталога, в котором находится зависимый исполняемый файл). После чего он попытается найти сборку в GAC.

Прежде всего, я на Windows.

Теперь, когда я компилирую, мое решение VS, все работает нормально (как и ожидалось), но когда я компилирую то же решение в MonoDevelop, компиляция останавливается из-за ошибок, связанных с отсутствующей ссылкой log4net (точная сборка, для которой я вручную установлен в GAC, чтобы избежать этой ситуации).

Итак, мой вопрос заключается в следующем: смотрит ли MonoDevelop на GAC во время компиляции, чтобы определить, доступна ли сборка, или есть другое место, в котором мне нужно предоставить требуемую сборку?

Спасибо за помощь!

1 ответ

С сайта MonoDevelop:

Я добавил сборку в GAC, почему она не отображается в списке сборок, когда я пытаюсь добавить ссылку в проект MonoDevelop?

Bacause MonoDevelop не ищет сборки в GAC. В Mac и Linux MonoDevelop использует pkg-config для поиска установленных пакетов и получения списка сборок, которые предоставляет каждый пакет. Пакет определяет этот список сборок в файле.pc, который должен быть установлен в стандартном каталоге pkg-config.

Если вы разрабатываете библиотеку, MonoDevelop может автоматически сгенерировать файл.pc для вашего проекта (в диалоговом окне параметров проекта выберите "Параметры развертывания Linux" и установите флажок "Создать файл.pc").

При нацеливании на.NET в Windows MonoDevelop использует тот же механизм AssemblyFolders, который использует VS.

Другие вопросы по тегам