2015-03-05 10 views
3

Я заметил, что новые проекты .csproj без этих директив nuget работают нормально. Являются ли эти реликвии прошлого, которые можно удалить из проектов? Я просмотрел nuget FAQ, но ничего не нашел в этом отношении.Нужна ли в nuget эти записи в проектах Visual Studio?

Я запускаю Visual Studio 2013, а также недавнюю сборку Xamarin Studio.

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

ответ

3

Эти конкретные цели будут добавлены, если вы использовали Enable NuGet Пакет восстановления пункта меню. В этом случае эти цели могут быть удалены. Visual Studio автоматически восстановит пакеты NuGet, если у вас установлена ​​последняя версия NuGet, без этих дополнительных целей. Этот пункт меню устарел командой NuGet, и я считаю, что в какой-то момент он будет удален.

Обратите внимание: если вы строите проект на сервере сборки, вам нужно будет создать дополнительный шаг для восстановления пакетов NuGet с помощью восстановления NuGet.exe, который был бы автоматически восстановлен, когда решение было построено на сборке сервера MSBuild.

Также обратите внимание, что NuGet добавит очень похожие цели, если вы добавите пакет NuGet, который включает в себя собственный файл MSBuild .targets, такой как Microsoft.Bcl.Build. В этом случае проект будет работать без целевого объекта EnsureNuGetPackageBuildImports, но ему потребуется элемент Import, который импортирует файл MSBuild .targets. Выход цели EnsureNuGetPackageBuildImports в проект дает вам более полезное сообщение об ошибке, почему сборка может быть неудачной, если пакет NuGet не восстановлен.

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

  • Нет связанных вопросов^_^