У меня есть проект «ProjA», который завершает ссылки на несколько других проектов и некоторые сборки «плагинов». Все эти ссылки имеют параметр «Копировать локальный» в «Истина». Обратите внимание, что код в сборках плагинов (которые являются ссылками на проекты) напрямую не упоминаются в «ProjA», а загружается и находится через DI/Ninject. (Так что я использую эти ссылки проекта как способ получения сборщиков плагинов в выходной папке, см. Ниже почему)Ссылка на другой проект с копией Local по ссылке
У меня также есть проект «ProjB», который ссылается на ProjA. Он вызывает код ProjA, который должен делать это, используя связанные плагины.
Проблема в том, что она не работает. Модули плагинов не копируются из выходной папки ProjA (которые они «скопированы локально») в выходную папку ProjB. Таким образом, Ninject не загружает их, и это не удается.
Так что мои два вопроса:
- Если я продиктовал VS/MSBuild, что ProjA относится к проектам P1, P2, P3, P4 и установить копию локального истина - то почему бы это предположить только для сборки ProjA требуется сборка основного вывода? Могу ли я заставить его думать иначе?
- Я предполагаю, что добавление копии локальных ссылок на сборки плагинов в качестве способа распознавания зависимостей сборки между плагинами и проектом с их использованием (в настоящее время это фиксированный набор плагинов, следовательно, этот маршрут) - это не идеально. Затем я думаю, что добавление модулей плагинов в качестве «Контента» в проект будет работать, но тогда у меня есть две проблемы: 1) контроль источника TFS; для проектов плагинов требуется доступная для записи цель для создания, предположительно - файлы содержимого будут «проверены» и 2) некоторые из плагинов имеют собственный контент: со ссылками мне не нужно беспокоиться о том, что что-то не хватает. Переходя по контуру Content, мне нужно сослаться на выходную папку сборки другого проекта, включая все содержимое, но не PDB .. кажется еще более взломанным!
Я также рассмотрел и проиграл шаги после сборки для проектов плагинов (не идеально: я втягиваю их в это новое решение из другого, если я добавлю шаги после сборки, он, вероятно, испортит другое решение) или проект, который зависит от них (это нормально, но XCopy с относительными путями и необходимость вручную устанавливать зависимостей проекта .. кажется, снова взломано).
Есть ли что-то, что мне не хватает, идеи вообще? Если скопировать местную привязку по проектам, она идеально подойдет.
Выполнение еще нескольких исследований, похоже, что создание одной выходной папки является ключевым. Я делаю это для «другого» решения, хотя тот, где в основном находятся плагины. Итак, как я могу получить проекты для создания в * новую * 'единственную' выходную папку для этого решения? –