Пакеты NuGet отсутствуют

297

Я искал эту проблему, но ни одно из решений не помогло. У меня установлена ​​Visual Studio Professional 2015, и я использую TFS. Моя версия NuGet - 3.1.6. Эта проблема возникает только в моем проекте C # Web API / MVC.

Я получаю следующую ошибку:

Этот проект ссылается на пакеты NuGet, которые отсутствуют на этом компьютере. Используйте NuGet Package Restore, чтобы загрузить их. Для получения дополнительной информации см. Http://go.microsoft.com/fwlink/?LinkID=322105 . Отсутствующий файл: .. \ packages \ Microsoft.Net.Compilers.1.0.0 \ build \ Microsoft.Net.Compilers.props

  1. У меня нет папки .nuget в моих решениях.
  2. У меня есть папка с пакетами в решении, и когда я ее удаляю, кажется, что NuGet перестраивает зависимости, но в проекте все еще есть вышеуказанная ошибка.
  3. Я попытался удалить проект из TFS, но это не помогло.
  4. Наряду с вышеуказанной ошибкой все ссылки в проекте имеют желтые предупреждающие знаки и говорят, что они отсутствуют.
  5. Когда я проверял диспетчер пакетов NuGet для проекта, все, что «отсутствует», имеет зеленую галочку рядом с ним, включая Microsoft.Net.Compilers.
  6. Я попытался добавить новый проект Web API / MVC, и он столкнулся с аналогичной проблемой, когда большинство ссылок, таких как Овин, «пропускали» с желтым предупреждающим знаком.
Кес Тион
источник
голосов, чтобы закрыть этот вопрос из-за количества сдаваемых ответов низкого качества новых пользователей.
ZF007

Ответы:

265

У меня была та же ошибка (отсутствует точно такой же пакет) сегодня. Я также создал проект MVC + Web API.

Это произошло потому, что я переместил файлы приложения (включая .csproj) в другое место. Я вручную обновил файл .sln, но теперь все зависимости пакетов (Visual Studio 2015) хранятся в файле .csproj.

Редактирование файла .csproj и исправление относительного пути к папке решения (которая содержит папку пакетов) решила проблему для меня.

Тибериу Крачиун
источник
2
Копирование папки Microsoft.Net.Compilers ... из папки старых пакетов в местоположение новых пакетов после перемещения, если оно отсутствует, может быть последним необходимым шагом.
Джастин Виньялл
2
Я только что удалил этот ОДИН пакет с моего компьютера, и он работал.
SpoiledTechie.com
1
Я также получил ошибку при физическом перемещении проекта в другое место в решении Visual Studio. Ни одно из решений на этой странице не сработало, поэтому я сделал копию проекта (в файловой системе) и полностью удалил все ссылки на исходный проект в VS. Затем я воссоздал проект и скопировал в него фрагменты (из созданной мной копии). Трудоемко, но это сработало.
Эндрю Дженс
2
У меня также была такая же проблема после перемещения проекта из одного места в другое. Исправление пути пакетов в файле ".csproj" решило проблему.
Нирман
2
@ MiłoszWieczorek Я попытался запустить команду в консоли диспетчера пакетов, но она не решила проблему. Он перезагрузил все пакеты, но ссылки до сих пор не найдены.
Франсиско д'Анкония
360

Я решил мою проблему, удалив этот код из .csprojфайла:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  <PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
  </PropertyGroup>
  <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
ДКР
источник
5
Принятый ответ не будет работать, так как я ссылаюсь на проект в нескольких отдельных решениях. Это было единственное исправление. Прокомментировал это, и это сработало как шарм.
Леви Фуллер
31
Я могу ошибаться, но я верю, что это "муха молотком". Если по какой-либо причине опубликованное местоположение теряет какой-либо другой требуемый пакет nuget, оно не выдаст ошибку, что приведет к ложному срабатыванию (т. Е. Развертывание выполнено успешно, но система не работает). Не фанат, но я не собираюсь понижать его, потому что есть нюгетические аспекты, с которыми я до сих пор не знаком.
HeyZiko
4
Это также сработало для меня. Странно, что сообщение об ошибке было жестко запрограммировано в самом файле
Райан Питерс
7
Подтверждено, что эта проблема все еще существует в VS 2017. Я перенес проект из Visual Studio 2015 в 2017 и получил это сообщение об ошибке при первой компиляции в 2017 году. Это исправило ошибку.
Том Макдональд
2
Зачем удалять функциональность, рисковать своим проектом и т. Д., Делая это? Как указывает @HeyZiko, это может привести к проблемам в дальнейшем. Я мог бы просто сделать то, что говорит ошибка «Включить восстановление пакета». Смотрите мой ответ где-нибудь на этой странице ...
Nicow
45

ВНИМАНИЕ - это обновление пакетов для всего решения, а не только для проекта.

Если у вас есть еще один отсутствующий пакет nuget, который выдает ошибку при создании решения, используйте следующую команду, используя консоль команд Nuget, из меню Инструменты> Диспетчер пакетов Nuget> Консоль диспетчера пакетов. Это переустановит все ваши текущие пакеты.

Update-Package –reinstall

Обновить:

Вы можете передать конкретное имя проекта в качестве параметра.

Update-Package –reinstall -ProjectName SampleApp
Шьям Бхагат
источник
1
Это сработало для меня. Ошибка выскочила после меня после того, как я запустил изменения через git в одной системе и потянул их в другую. Возможно, мой .gitignore неправильно настроен для пакетов nuget.
Патрик Боркович
16
Осторожно ... это обновляет пакеты для всего решения, а не только для проекта.
SO User
1
Это сработало для меня. NuGet продолжал жаловаться на отсутствующие пакеты, но Visual Studio не разрешал автоматическое разрешение. Полное выполнение заняло пару минут, но эта команда устранила мою проблему.
Ник Александер
8
Вы можете добавить параметр -ProjectName, чтобы сделать его только для конкретного проекта, а не для всего решения.
Милош Вечорек
2
VS2017 разбился на полпути через это, и это сломало все
бросает
19

У меня было именно это разочаровывающее сообщение. В конечном итоге у меня сработало удаление всех файлов и папок внутри / packages и разрешение VS повторно загружать все при следующей сборке.

Райан Руссон
источник
2
Я щелкнул правой кнопкой мыши на Решение и Restore Nuget Packages.
Витор Канова
1
У меня нет никакого пакета восстановления Nuget, когда я щелкаю правой кнопкой мыши по решению .... Я использую VS 2013 ..
Ziggler
Также нужно было убедиться, что он восстанавливает правильную упаковку. проверьте .csproj, используя note / Edit * .csproj для определения местоположения папки пакетов
AceMark
15

Тибериу это правильно. Я должен был отредактировать мой файл .csproj, поскольку файлы были перемещены, и вызвал эту проблему

 <Import Project="..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />

Я изменил вверху файла и внизу

<Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
Том Стиккель
источник
в конце концов у меня получилось редактировать только строку в конце файла, но не вверху
ISAE
15

Так я решил эту ошибку: чтобы открыть файл .csproj для обновления в Visual Studio 2015+, обозреватель решений:

Щелкните правой кнопкой мыши имя проекта -> Выгрузить проект

Щелкните правой кнопкой мыши имя проекта -> Изменить .csproj

Удалите следующие строки:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
    <Error Condition="!Exists('packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
  </Target>

Щелкните правой кнопкой мыши имя проекта -> Обновить проект

Наконец, постройте свое решение.

Абдулла
источник
После исправления путей вручную в csproj я удалил раздел EnsureNuGetPackageBuildImports, и он работал отлично. спасибо
willyMon
11

Я решил эту проблему, удалив следующий код из файла .csproj

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
  <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\..\Assemblies\NuGet\SpecFlow.Plus.Excel.1.4.2\build\SpecFlow.Plus.Excel.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\Assemblies\NuGet\SpecFlow.Plus.Excel.1.4.2\build\SpecFlow.Plus.Excel.targets'))" />

Мохсин Аван
источник
1
Но почему, где это неправильно в первую очередь? Ошибка в Visual Studio?
Защитник один
8

Комбинация из 2 ответов сработала для меня. Сначала я изменил файл .csproj, чтобы удалить ссылку на версию 1.0.0

< Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild" >

  ----Error---

< /Target>

а потом сделал

Update-Package -Reinstall

от и это сработало.

Пракрити
источник
6

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

введите описание изображения здесь

Джон Питерс
источник
6

Просто включите восстановление пакета NuGet. Щелкните правой кнопкой мыши свое решение> выберите «Включить восстановление пакета NuGet».

Щелкните правой кнопкой мыши свое решение> выберите «Включить восстановление пакета NuGet»

Это создаст папку .nuget с файлом NuGet.Config и исправит мою проблему.

Nicow
источник
Спасибо!! Я тоже столкнулся с подобной ситуацией, и сработало «Включить восстановление пакета NuGet».
джайнский принц
18
Он не работает для меня, он говорит: «Все пакеты уже установлены и восстановить нечего».
Далибор
5

Я использую VS2012 и сталкиваюсь с той же ошибкой. Я удалил следующий тег Target из файла .csproj, и он начал компилироваться без каких-либо ошибок.

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  -- Error messages within Target Tag
</Target>
MAK
источник
5

Чтобы расширить некоторые ответы здесь, да, вы можете удалить следующий блок из файла .csproj:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

и это решает проблему, однако в моем случае я заметил, что у меня есть дополнительные ссылки на .NET.Compilers и .CodeDom.Providers с различными версиями:

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.0.1
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\

Когда мой package.config ссылается только на следующее:

<package id="Microsoft.Net.Compilers" version="2.0.1"
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.3"

Удаление элементов 1.0.0 из файла .csproj устранило проблему.

Брайан Вандер Платс
источник
2

Для любого, кто сталкивается здесь с проблемой, с которой я столкнулся (некоторые, но не все пакеты, восстанавливаемые на сервере сборки), последний кусок головоломки для меня заключался в добавлении NuGet.config в корень моего решения, в том числе в .SLN. файл, как объяснил Дэвид Эббо, здесь: http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html .

Из сообщения в блоге Ebbo, содержимое файла для меня просто

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
  </packageSources>
</configuration>

ОБНОВИТЬ:

URL-адрес API NuGet был изменен для версии 3 (по состоянию на сентябрь 2016 года). С https://www.nuget.org/

<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
madannes
источник
1

Сообщение об ошибке полностью правильно. Я перепробовал все трюки, и ни один не сработал. Проект (простой тест MVC Web App) переместился из Windows 8.1 VS 2015 Community в мой новый тестовый ящик в Windows 10. Все последние обновления для VS 2015 применены. Я даже не мог установить более новую версию пакета компиляторов.

Loop:
<LOOP>This seems to be a Ground Hog Day phenomena.</LOOP>
GoTo Loop

Наконец, я просто скопировал Microsoft.Net.Compilers.1.0.0 из старого проекта в новый, и он заработал. Затем я мог бы начать обновлять другие пакеты до более новой версии. Похоже, ошибка процесса обновления проекта nuget для меня.

ПРИМЕЧАНИЕ . Первоначальный проект был создан в VS 2015 и не имеет устаревших методологий nuget.

Питер Эннис
источник
1

Решение, которое работает в моем случае - Visual Studio 2015 Предприятие, проект .NET 4.6.1

  1. Обновить до обновления 3
  2. Установите инструменты веб-разработчика

Визуальная студия установки Wizzard

Норберт Розмус
источник
1

Для меня пакеты были там по правильному пути, но папок сборки внутри папки пакета не было. Я просто удалил все пакеты, которые, по его словам, отсутствовали, и пересобрал решение, и он успешно создал папки сборки и файлы .props. Таким образом, сообщения об ошибках были правильными, сообщая мне, что что-то было не так.

Йен Хейл
источник
1

У меня была эта проблема как неудачная сборка в Azure при развертывании из Git.

Оказывается, мой .gitignore исключал buildпапку из ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props.

Как только buildпапка была (принудительно) передана в Git, проблема была решена.

Нил Томпсон
источник
1

Я решил ту же проблему с помощью следующих шагов

  1. Удаленный пакет <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net46" /> из файла package.config.
  2. Отредактируйте файл проекта .csproj и удалите приведенные ниже настройки. <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">     <PropertyGroup>       <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>     </PropertyGroup>     <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />   </Target>

    1. Зайдите в консоль диспетчера пакетов и выполните команду Update-Package –reinstall

Пункты 2 и 3 были даны другими пользователями, и я ценю этих пользователей. Пункт № 1, удаление Microsoft.CodeDom.Providers.DotNetCompilerPlatformиз файла package.config является более важным. Кроме того, после выполнения команды, упомянутой в пункте № 3, проблема решена. Все ненужные пакеты удалены, а требуемая ссылка на пакет обновлена.

Надеюсь, это кому-нибудь поможет.

Картик
источник
0

Я не смог найти никаких решений для этого, поэтому я добавил копию nuget.exe и скрипт powershell в корневой каталог решения с именем prebuild.ps1 со следующим содержимым.

$nugetexe = 'nuget.exe'
$args = 'restore SOLUTION_NAME_HERE.sln'
Start-Process $nugetexe -ArgumentList $args

Я назвал этот скрипт powershell в моей сборке в пути к сценарию перед сборкой введите описание изображения здесь

Ник Рубино
источник
0

Мой работал, когда я скопировал папку пакетов вместе с файлом решения и папкой проекта. Я просто не скопировал папку с пакетами с предыдущего места.

user1429899
источник
0

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

это оно

Парама Дхармика
источник
0

Прокомментируйте опцию компилятора в WebConfig:

<!--<system.codedom>
<compilers>
  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
  <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
</compilers>
</system.codedom>-->

Обновите последнюю версию пакетов в файле конфигурации пакетов

  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.4" targetFramework="net452" />

Перестройте все, если все в порядке, не нужно продолжать, иначе щелкните правой кнопкой мыши проект, выберите «unload project» и снова щелкните правой кнопкой мыши проект и отредактируйте файл .csproj

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

<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
Викас Бансал
источник
0

Как многие предложили, удаление <Target>тега может сделать его компилируемым. Тем не менее, остерегайтесь того факта, что он имеет побочный эффект, когда вы делаете это для тестовых проектов.

Я получил ошибку, связанную с MSTest.TestAdapterпакетом nuget во время компиляции. Решил эту проблему, удалив<Target> тег. Несмотря на то, что сборка была успешной, методы тестирования стали недоступны для обнаружения. Тестовый проводник не будет перечислять методы тестирования в этом проекте, и Run Test или Debug Test также не будут работать.

Я столкнулся с этим во время использования, Visual Studio 2017и .Net framework 4.7это может очень хорошо произойти в других версиях

Saravanan
источник
1
У меня именно эта проблема, используя VS2017, .Net4.7 и проект модульного тестирования. Этот проект добавлен в несколько решений. Автоматическое восстановление работает, но не в том месте. Заменить на $(SolutionDir)работу, но обновить не удалось. Я спросил это здесь . У вас есть какое-нибудь решение?
Себастьян Шуман
0

Для меня проблема заключалась в том, что NuGet не мог автоматически получать / обновлять пакеты, потому что полный путь к файлу был бы слишком большим. Исправлено перемещение моего решения в папку в «Документах» вместо глубоко вложенной папки .

Затем можно щелкнуть правой кнопкой мыши решение и выбрать «Восстановить пакеты NuGet» (что, вероятно, не нужно, если вы просто создадите его и сделаете это за вас), а затем выберите «Управление пакетами NuGet для решения», чтобы получить все пакеты. обновлено до последней версии.

Это было для решения образца приложения ASP MVC, загруженного с веб-сайта Microsoft.

pkr298
источник
0

Для разработчиков DevOps / build, вы, вероятно, можете исправить это, работая nuget restoreс уязвимым SLN или проектом, если у вас нет SLN. Я должен сделать это для наших сборок CI / CD для всех наших проектов UWP.

  1. Убедитесь, что nuget установлен на ведомой сборке либо в Visual Studio, либо в автономном режиме. Если это последний, убедитесь, что он в ПУТИ и пропустите шаг 2.
  2. Либо откройте консоль VS Dev CMD, либо загрузите ее через уже открытую консоль, что можно сделать с помощью приведенных ниже инструкций:
    VS2015 call "%VS140COMNTOOLS%VsDevCmd.bat"
    или
    VS2017call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"
  3. call nuget restore MyStuff.SLNили call nuget restore MyStuff.csprojесли нет SLN.
kayleeFrye_onDeck
источник
0

Не уверен, поможет ли это кому-нибудь, но у меня возникла эта проблема, когда я удалил исходный код с моего локального компьютера, даже не сохранив файл решения в TFS. (Во время первоначальной разработки я щелкал правой кнопкой мыши и проверял проект в обозревателе решений, но забыл когда-либо проверять само решение.) Когда мне нужно было снова поработать над этим, все, что у меня было в TFS, это файл .csproj, Нет .SLN файл. Поэтому в VS я сделал Файл -> Контроль исходного кода -> Дополнительно - Открыть с сервера и открыл файл .csproj. Оттуда я сделал Save All, и он спросил меня, где я хочу сохранить файл .sln. Я сохранял этот файл .sln в каталоге проекта с другими папками (App_Data, App_Start и т. Д.), А не с каталогом верхнего уровня. Я наконец понял, что мне нужно сохранить файл .sln в каталоге из папки проекта, чтобы он На том же уровне, что и папка проекта. Все мои пути решены, и я смог построить его снова.

chersull_99
источник
0

Для меня мой файл gitignore игнорировал мою папку пакетов. Следующая строка gitignore вызывала проблему -

**/packages/*

Удалил и восстановил папку с моими пакетами. Надеюсь, это поможет кому-то еще.

bsod_
источник
0

Я получил исправление этой ошибки, на самом деле у меня была другая версия MSTest.TestAdapter (1.3.2) в моей папке пакетов и в .csproj ссылки на файл указывали на MSTest.TestAdapter (1.1.0). Я заменил все MSTest.TestAdapter (1.1.0) на MSTest.TestAdapter (1.3.2), и это решило мою проблему.

Иршад Ахмед Ахонзада
источник
0

Я понимаю, что этот вопрос старый, однако сегодня я столкнулся с такой же ситуацией и хотел добавить свои 2 цента для тех, кто недавно нашел эту проблему. Проект ASP MVC, который я вручную переместил в подпапку в своем решении, а затем удалил и добавил в решение, используя Visual Studio 2017, выдавал указанную ошибку. Перемещение папок «lib» и «packages» в корень той же подпапки, что и проект MVC, решило мою проблему.

JP Sietsma
источник
0

У меня возникла та же проблема, оказалось, что один из проектов, на которые я ссылался, находился за пределами каталога решения (и поэтому не использовал одну и ту же папку «/ packages»). Решение, которое работало для меня, состояло в том, чтобы открыть решение эталонного проекта и построить его там. Как только этот проект был построен, ошибки исчезли.

bmontalvo
источник