Проблема. Мы использовали инструмент регистрации подключаемых модулей CRM для обновления сборки, которая раньше работала нормально. Затем мы начали получать
Could not load file or assembly "Project 1 version ....Culture.. PublicKeyToken..."
Подробности. Сборочный проект, ссылающийся на другой проект в том же решении:
- Проект 1 (библиотека классов – отсутствующий файл или сборка в приведенном выше сообщении)
- Проект 2 (сборка, которую необходимо развернуть): ссылка на Проект 1
Изучив проблему, вызвавшую эту ошибку, сравнив рабочую сборку с новой сборкой, вызвавшей ошибку (используя инструмент dotPeek для просмотра содержимого dll), мы обнаружили разницу в том, как существовал проект 1. в обеих сборках.
- Рабочая сборка: Проект 1 исходный код существовал в сборке как пространство имен (без dll) (выполнено старым разработчиком, который ушел)
- Плохая/ошибочная сборка: проект 1 существовал как ссылка (dll-файл).
Вопрос. Как добиться того же поведения в моем коде/VS, что и в рабочей сборке?
Если это поможет: мы используем Dynamics CRM 2016 On-Premise, ILMerge, Visual Studio 2015.
Примечание.
Мы не можем перейти с базы данных на диск или GAC, так как там множество плагинов и шагов.
Мы развертываем сборки в CRM в: Без песочницы и базы данных