У нас есть проект Loader и основной проект. Основной проект - это то, что содержит все наши представления и модели представлений, которые нам необходимы для модульного тестирования. При тестировании моделей представлений мы хотим запустить загрузчик, как обычно, чтобы он правильно настраивал все необходимые службы. Для этого мы подумали, что можем создать тестовый загрузчик, который наследуется от загрузчика проектов Loader. Это активирует нашу навигационную службу и контейнер IOC, чтобы мы могли затем протестировать модели представлений.
Проблема, которую мы обнаружили, заключается в том, что мы наследуем загрузчик загрузчика и будем вызывать модели представлений непосредственно в наших модульных тестах. Нам нужна ссылка на проект как для загрузчика, так и для ядра. Это добавит Loader.dll и Core.dll в xap-файл тестовых проектов.
когда мы запускаем TestBootstrapper, который наследуется от Loader.Bootstrapper, проект Loader загружает core.xap и импортирует core.bootstrapper для его инициализации. однако, делая это, когда mef пытается импортировать core.bootstraper, он сопоставляет его с core.xap, который загружает загрузчик, и testproject.xap, который имеет ссылку на основной проект. Это приводит к сбою импорта, поскольку он уже был инициализирован.
Есть ли способ, которым мы все еще можем динамически загружать xaps, но не вызовет проблемы с перекрестными ссылками между проектами?