2017-01-02 16 views
1

У меня есть большое решение с 56 проектами. Иногда, когда клонирование репо на новую рабочую область и восстановление с нуля, я получаю странные проблемы.Создание большого решения с несколькими зависимостями завершается неудачей, если не построено вручную

Это выглядит следующим образом:

я загружаю проверил файл решения, и получить около 20 сложенных диалоговых окон, которые хотят, чтобы я восстановить NuGet-библиотеку. Хорошо, я могу это сделать (но немного посмеяться о сложенных диалогах)

я Строят-Clean Solution

I сделать Build-Build Solution

Я получаю 63 ошибки типа CS0006 метаданных «MySolution \ MyProject \ bin \ Debug \ MyProj.dll "не удалось найти. В этих ошибках упоминается около 4-5 DLL.

Затем я создаю их «вручную», щелкнув правой кнопкой мыши и сделав перестройку, и в конечном итоге я смогу построить весь проект. Очевидно, есть некоторые проблемы с зависимостями, но как я могу исследовать их, так как он должен работать «автоматически»? Я почти предпочел бы создать файл сборки сам ....

Любые идеи?

+1

Для каждого из 'MyProj.dll' не найдено, щелкните по проекту, который не строился, и добавьте ссылку на' MyProj', это должно установить правильный порядок сборки. Предполагая, что они настроены на создание в вашей конфигурации. – pstrjds

+0

Вам нужно добавить ссылку [.dll файл] из других проектов в ваш проект запуска. – Prabu

+0

Причина, по которой я получаю сообщение об ошибке, заключается в том, что на проекты уже ссылаются ... –

ответ

0

Оказалось, что проект (а не мой!) Отсутствовал. Зависимость между проектами. По-видимому, я не полностью понимаю управление зависимостями (переключился с Java на C# в этом году), я думал, что это было более автоматическим, так как я мог «использовать» -статья без проблем, хотя зависимость была настроена, но в некоторых случаях они отсутствовали. Я расскажу об этом позже, но на данный момент достаточно, чтобы я знал, что мне придется проверять каждую ошибку самостоятельно и проверять с помощью настроек сборки.

1

Перейти к физическому расположению папки проекта -> щелкните правой кнопкой мыши перейти к свойствам -> удалить или отменить проверку только на чтение (удалить папку только для чтения) и перестроить решение.

Проблема в том, что ваша локальная копия решения доступна только для чтения, и вы пытаетесь создать решение (он попытается удалить/заменить какой-либо файл .exe во время сборки, но у него есть ограничения, связанные с чтением - только режим.)

Пакет Nuget будет восстановлен только тогда, когда физическая локальная папка пакета не существует или не удаляется. Вы можете вручную удалить пакетную папку и создать решение, сначала загрузите или установите все зависимости.

попробуйте, возможно, это сработает.

+0

Это выглядело многообещающим, у многих папок была защита от записи. Сделал ли GIT это? Во всяком случае, это не имело явной разницы. Основная проблема заключалась в другом. –

+0

Удалите только для чтения из вашей локальной копии, он также попросит вас применить в подпапках, согласиться и продолжить. Удаление только для чтения не влияет на фактический проект, это для ваших локальных разрешений. Пожалуйста, не загружайте папку пакета в TFS. Я уверен в Visual Studio и TFS, а не о GIT. –