2015-11-02 3 views
6

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

На другом компьютере, также через VS2015, я вошел в состав Visual Studio Team Services, чтобы захватить тот же проект и загрузить весь код

Когда я пытаюсь построить, есть более 100 ошибок, но причина, как представляется, то же самое. Он не может найти ресурсы, а также сообщения об ошибках, все, как представляется,

типа имени пространства имен «некоторого имени» не существует в «....» (пропущена ссылка на сборку?)

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

В поисках свойств нет пути. Назад на оригинальном ПК я вижу путь к любой из .dlls похож слишком

C: \ Users \ Me \ Documents \ Visual Studio 2015 \ Projects \ MYPROJ \ ToT \ Packages \ Antlr.3.5.0.2 \ Lib \ Antlr3.Runtime.dll

ли вопрос, так как этот путь не совпадает с «неправильной» машиной он не может показать ... Поэтому то, что решение этой

enter image description here

Я проверил и отметил, что файлы действительно существуют ru Я смотрю на них в Проводнике.

All system references missing Visual Studio 2013 NuGet Async не помогло

Пожалуйста, обратите внимание, что это происходит со всеми проектами в моем решении, но не consitently. Например, EntityFramework отсутствует у всех, но System отсутствует в моем слое пользовательского интерфейса, но не из моего слоя BLL

Есть ли способ исправить это?

+0

Являются ли ваши проекты созданными в VS 2015? Используете ли вы TFS TFVC или GIT? Вы ставите в очередь локальную сборку или сборку TFS при обнаружении этой проблемы? –

+0

@Cece, решение изначально VS 2012, но перенесено на VS 2015. Было отлично с SVN. Теперь удалить SVN для использования TFS Express (не используя GIT с ним). Я не знаю, что я занимаюсь очередью или зданием в TFS, проблема возникает, когда я строю VS – MyDaftQuestions

+0

'nuget restore' как шаг сборки кулака после загрузки решения – leppie

ответ

6

Вам необходимо запустить обновление-пакет -reinstall команду, чтобы переустановить все пакеты, на которые ссылается.

+1

Другим вариантом для решения этого вопроса было бы (как описано в Валерии ниже) удалить содержимое папки с пакетами. Разве это не глупо, что VS и TFS по умолчанию проверяют содержимое папки пакетов? Потому что по умолчанию git игнорировать файлы для разработки C# у них есть исключения из источника управления – WhiteIntel

+0

Я испытываю подобную проблему, и ни ваше решение, ни Валерия не работали для меня. Любые идеи, что попробовать дальше? – rsnyder

-1

Во-первых, перейти к VS - Инструменты - Расширения и обновления, чтобы проверить, есть ли обновления, установить все обновления. Затем выберите одну ссылку с предупреждающим значком, проверьте свойство Specific Version, если значение True, измените его на False.

Если проблема не устранена, проверьте ссылочные сборки .Net фреймворка на двух компьютерах, чтобы увидеть, находятся ли они в одном месте (предполагается, что инфраструктура .Net должна находиться под * C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework *).

================================================================================================================================== =========================== 11/5: Для того, чтобы избежать ссылки отсутствует, вы можете проверить во всех ссылках на контроль источника и ссылки из контролируемые источником или использовать Nuget Package Manager для установки пакетов. Предыдущее не рекомендуется сейчас, попробуйте Nuget Package Manager.

+0

Я проверил путь на рабочем ПК, путь для Antlr3.Runtime это 'C: \ Users \ Me \ Documents \ Visual Studio 2015 \ Projects \ MyProj \ ToT \ packages \ Antlr.3.5.0.2 \ lib \ Antlr3.Runtime.dll' ... На другом компьютере нет пути (на один с ошибкой). Похоже, проблема в том, что она не принимает относительные имена путей, но абсолютна для DLL. Если это предположение верно, как мне поделиться пакетами между машинами? – MyDaftQuestions

+0

Щелкните правой кнопкой мыши по вашему решению, выберите «Управление пакетами Nuget для решения», в разделе «Менеджер пакетов Nuget», найдите «antlr» и установите его, затем зайдите в решение, вы сможете увидеть DLL-файлы, когда вы получите решение от другого компьютер. –

+1

Чтобы избежать недостатков в ссылках, вы можете либо проверить все ссылки на исходный контроль и ссылку из исходных, либо использовать Nuget Package Manager для установки пакетов. Предыдущее не рекомендуется сейчас, попробуйте Nuget Package Manager. –

0

Звучит тривиально, но ваши недостающие ссылки на system.xxxx могут означать проблему с .NET Framework, какую версию вы используете и правильно ли она установлена ​​на вашей «неисправной» машине. Возможно, стоит переустановить/отремонтировать? Я бы проверял, на каких версиях действительно ссылаются.

Что касается NuGet, убедитесь, что Включить пакет восстановления устанавливается как:

enter image description here

Кроме того, у меня была проблема, похожий на этот раз, и я должен был обновить менеджер пакетов NuGet до версии 3 в Инструменты ->Расширения и обновления (Вам нужно удалить, а затем повторно установить как обновление не будет работать)

enter image description here

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

0

Проверьте версию .NET:

окно результатов
  1. свойства Откройте проект и проверьте Target Framework: enter image description here

  2. Обеспечить эту версию .NET установлен. ИЛИ изменить целевую структуру в подходящую версию

6

У меня была такая же проблема, есть много ответов на сейчас, но я до сих пор разместим его здесь:

1.Close Visual Studio 2.Manually удалить локальные «пакеты» папка 3.Переоткройте решения и перестроить. (NuGet должен восстановить пакеты)

Источник: http://robertgreiner.com/2013/09/team-foundation-service-build-error-nuget/

0

До удара головы о стене с миллионом «исправлений» NuGet вы должны убедиться, что вы получаете ВСЕХ библиотеки DLL, которые находятся в папку вашего Bin под контролем источника. По какой-то причине простой «Получить последнюю версию» недостаточно. Visual Studio будет сообщать вам, что все файлы обновлены, но, видимо, это не означает, что загружены все файлы под контролем источника (или это происходит, и то, что со мной произошло, - это просто нахальная ошибка). В любом случае, чтобы убедиться, что вы действительно «получаете все», вам нужно принудительно обновить, используя команду «Получить конкретную версию» с опцией «Перезаписать все», как указано VS. Для этого:

  1. Перейдите в папку Bin в проводнике исходного кода (или w.е папки вы действительно хотите, чтобы получить все)

  2. Щелкните правой кнопкой мыши> Дополнительно> Получить конкретную версию

  3. Проверьте «Переписать все файлы, даже если локальная версия соответствует указанной версии» флажок

  4. Нажмите Получите

Посредством этого я гарантировал, что все указанные DLL-файлы были загружены из TFS, и для меня это решило проблему. Я использую Visual Studio Enterprise 2015.

0

Перейти к TOOLS -> менеджер пакетов nuget -> консоль менеджера пакетов -> и запустите консоль: UPDATE-PACKAGE -REINSTALL. Очистите свое решение, перестройте, и вы готовы!

Смежные вопросы