2012-05-10 3 views
9

Когда я открываю решение в первый раз после его загрузки из TFS, он (Vs2010) не может найти файл NuGet.targets.Nuget.targets не найден при первом открытии решения

Я проверил TFS, и он помечается как загруженный, и он существует в файловой системе.

Если я попытаюсь снова открыть решение непосредственно с TFS, он внезапно начнет работать.

Я чувствую, что это причина, по которой мои автоматические сборки также терпят неудачу.

Неужели кто-нибудь сталкивался с этим вопросом раньше?

+0

Вы проверили, есть ли каталог .nuget в каталоге вашего решения с файлом NuGet.targets? NuGet.targets находится с использованием переменной $ (SolutionDir), я не вижу никакой другой причины, кроме того, что файл не существует локально ... – Nock

+0

Yup это все, как я сказал в моем вопросе - все работает отлично, второй раз вокруг ... –

ответ

3

Когда Visual Studio загружает решения из TFS (файл с двойным щелчком по sln в explorer), он загружает файлы один за другим и загружает их. К сожалению, он пытается открыть файлы проекта, прежде чем он загрузит каталог .nuget, поэтому он не может найти файл. Последнее, что кажется, это загрузить этот файл, который объясняет, почему он находится на диске, но дал ошибку. Если вы снова откроете решение, оно уже существует и прекрасно работает.

Когда сервер TFS Build загружает решение для сборки, он делает это в каталоге решений. Это означает, что он получит каталог .nuget, прежде чем он попытается построить, поэтому он не должен вызывать проблем на сервере сборки.

Я считаю, что это ошибка в Visual Studio, она действительно должна сначала загрузить все элементы решения. Хотя было бы неплохо, если бы у него было такое же поведение, как у TFS Builds.

Работа по этой проблеме заключается в том, чтобы получить последнюю информацию о папке решения, прежде чем открывать решение в первый раз. Не идеальный, но он работает.

Я также предлагаю зарегистрировать ошибку с командой нугета или визуальной студии, однако я подозреваю, что они, вероятно, уже знают об этом.

10

Отправлено в эту пятницу и на другую машину сегодня.

Для аппарата в пятницу я скопировал каталог .nuget, так как у меня его не было.

Для машины сегодня она имела каталог .nuget и копирование с другой машины не разрешало проблему. Открытие его из диспетчера исходного кода TFS также не работало.

Затем мы выполнили шаги на Opening project in Visual Studio fails due to nuget.targets not found error (включите восстановление пакета в решении), и он работал без проблем.

Не наткнулся на это до прошлой недели, и это всего лишь один проект из многих, при этом никто из других не имеет этой проблемы.

2

Я имел эту проблему, пытаясь бежать через учебник по http://www.windowsazure.com/en-us/develop/net/tutorials/multi-tier-web-site/2-download-and-run/

Оказывается почтовый файл исходный код был в экстрактах в папку, содержащую запятые, которые я не думаю, что MSBuild понравилось. Помогло переместить его в более безопасный каталог.

+0

Спасибо тонну. Ты спас мой день ...! – Jake

0

Попробуйте эти шаги

  1. Install NuGet.
  2. Щелкните правой кнопкой мыши на решении и выберите «Включить пакет NuGet Restore».
  3. Нажмите «ОК» на предупреждении.
  4. Закройте и снова откройте решение.