Подтвердить что ты не робот

Какова цель EnsureNuGetPackageBuildImports?

В некоторых моих файлах csproj у меня есть это, но некоторые dont:

  <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>

Что именно это и зачем мне это нужно? Мои другие проекты восстанавливают их пакеты просто отлично без него.

Я использую VS2013 и NuGet 2.8.

4b9b3361

Ответ 1

Он гарантирует, что импортированные файлы .props и .targets действительно импортируются. NuGet поддерживает поддержку NuGet MSBuild с 2.5. Код EnsureNuGetPackageBuildImports был добавлен в сентябре, но я думаю, что это изменение 2.8. К сожалению, это похоже на не-обратно совместимое изменение. У нас есть разработчики на 2.7, которые теперь должны будут обновиться до 2,8. Я нашел EnsureNuGetPackageBuildImports в Common/MsBuildProjectUtility.cs на строка 11.