MonoDevelop Компиляция и GAC
Я немного смущен тем, что здесь происходит.
Насколько я понимаю, когда требуется сборка во время выполнения, среда выполнения сначала пытается загрузить сборку из исполняющего каталога (или каталога, в котором находится зависимый исполняемый файл). После чего он попытается найти сборку в GAC.
Прежде всего, я на Windows.
Теперь, когда я компилирую, мое решение VS, все работает нормально (как и ожидалось), но когда я компилирую то же решение в MonoDevelop, компиляция останавливается из-за ошибок, связанных с отсутствующей ссылкой log4net (точная сборка, для которой я вручную установлен в GAC, чтобы избежать этой ситуации).
Итак, мой вопрос заключается в следующем: смотрит ли MonoDevelop на GAC во время компиляции, чтобы определить, доступна ли сборка, или есть другое место, в котором мне нужно предоставить требуемую сборку?
Спасибо за помощь!
1 ответ
Я добавил сборку в GAC, почему она не отображается в списке сборок, когда я пытаюсь добавить ссылку в проект MonoDevelop?
Bacause MonoDevelop не ищет сборки в GAC. В Mac и Linux MonoDevelop использует pkg-config для поиска установленных пакетов и получения списка сборок, которые предоставляет каждый пакет. Пакет определяет этот список сборок в файле.pc, который должен быть установлен в стандартном каталоге pkg-config.
Если вы разрабатываете библиотеку, MonoDevelop может автоматически сгенерировать файл.pc для вашего проекта (в диалоговом окне параметров проекта выберите "Параметры развертывания Linux" и установите флажок "Создать файл.pc").
При нацеливании на.NET в Windows MonoDevelop использует тот же механизм AssemblyFolders, который использует VS.