Отсутствует файл NuGet.targets в существующем проекте

Просто создайте папку с именем «data» на диске C и внутри папки данных создайте другую папку с именем «db». Затем выполните mongod.exe:)

1
задан JPassos 17 January 2019 в 11:40
поделиться

1 ответ

<solution folder>\.nuget\NuGet.targets - это файл, который расширение NuGet Visual Studio использовало для добавления в Visual Studio 2010, 2012 и 2013, когда вы щелкаете правой кнопкой мыши по решению и выбираете «Включить восстановление пакета NuGet». Затем он добавил бы импорт во все файлы вашего проекта для импорта файла целей. Недавно я расследовал проблему клиента , и в ходе этого расследования я обнаружил, что она внесла следующие изменения. Около вершины csproj, он добавляет что-то вроде этого:

<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>
<RestorePackages>true</RestorePackages>

и около конца csproj он добавляет что-то вроде этого:

<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<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>

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

Единственным недостатком является то, что если вы собираете на сервере CI и используете packages.config, ваш скрипт сборки должен быть запущен nuget.exe restore, тогда как проекты, использующие NuGet.targets, могут просто построить решение, а msbuild выполнит восстановление nuget по мере необходимости. , Одно из преимуществ отказа от использования NuGet.targets заключается в том, что восстановление всего решения происходит быстрее, чем восстановление проекта за проектом. Visual Studio автоматически восстанавливает пакеты при сборке, даже в VS2010, VS2012 и VS2013, поэтому лично я не рекомендую использовать эту функцию, даже если вы используете эти старые версии Visual Studio. На мой взгляд, преимущество сокращения вашего сценария сборки на один шаг не стоит тех проблем, которые оно приносит.

0
ответ дан zivkan 17 January 2019 в 11:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: