Ссылочный проект "Copy Local = false" показывает "Не удалось загрузить файл или сборку"

Я провел дни в поисках ответа, но не понял, что происходит.

У меня есть решение с 4 проектами. Одна из них ссылается на другую 3. Все ссылки устанавливаются "copy local = false".

Я сделал выходные папки для каждой из них, и все шло отлично, пока я не решил изменить выходную папку.:-(

Теперь, когда я ссылаюсь на проект с другим свойством "copy local = false", проект не загружается, и у меня появляется ошибка, говорящая

Не удалось загрузить файл или сборку "..." или одну из ее зависимостей. Система не может найти указанный файл.

Из FusionLog я совершенно уверен в ошибке, что Studio все еще ищет.dll проекта по старому пути.

Когда я устанавливаю "copy local = true", проекты запускаются, но это решение неприемлемо.

Что я должен сделать, чтобы я мог загрузить свой проект снова с копией local, установленной в false? Как я могу изменить путь, который ищет Visual Studio? Есть ли кеш, который я могу очистить или обновить?

Заранее спасибо за любую помощь в этом.

2 ответа

  1. Возьмите резервную копию всего вашего решения (все файлы)
  2. Найдите файл вашего решения (.sln).
  3. Щелкните правой кнопкой мыши его значок и выберите "Открыть с помощью", а затем выберите "Блокнот" или аналогичный текстовый редактор.
  4. Ищите часть или весь старый путь.
  5. Если вы найдете его в файле, замените все экземпляры старого пути на новый.
  6. Сохраните файл.

Добавьте это в app.config вашего зависимого проекта (т.е. проект, который имеет зависимости от других проектов):

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <probing privatePath="*relative path to assemblies here*" />
    </assemblyBinding>
</runtime>

При этом "относительный путь к сборке здесь" заменяется фактическим относительным путем к месту сборки (ваши новые выходные папки).

MSDN

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