Я пытаюсь перенести все свои проекты C# в новое автоматическое восстановление Nuget, следуя этому руководству: Миграция решений, интегрированных с MSBuild, для использования автоматического восстановления пакетов
Я успешно сделал это для своих проектов рабочего стола/библиотек, которые мне пришлось редактировать файлы .csproj, удалив из него эти строки (я не использую TFS):
<RestorePackages>true</RestorePackages>
...
<Import Project="$(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>
Однако на веб-сайтах, похоже, нет .csproj или любого другого файла, содержащего эти инструкции. Когда я устанавливаю пакет, он успешно помещает .dll в папку моих пакетов, но также помещается в папку bin. Если я выберу .dll в разделе /bin в обозревателе решений, он будет иметь следующие свойства:
Auto-refresh path: C:\mypackages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll
File Name: Newtonsoft.Json.dll
Full Path: C:\MyWebSite\Bin\Newtonsoft.Json.dll
Это установлено по умолчанию, когда я впервые устанавливаю пакет из nuget. Я думаю, что он не должен заглядывать в папку bin, или когда я создаю проект, он должен переносить .dll в папку bin, если он не существует. Проблема в том, что если я создаю проект без .dll в корзине, это дает мне следующую ошибку: «Тип или имя пространства имен« Newtonsoft »не удалось найти (вам не хватает директивы использования или ссылки на сборку?)». Для проектов рабочего стола/библиотек .dll копируется в папку bin.
Я прочитал в другом вопросе, что Nuget не поддерживает веб-сайт, а вместо этого поддерживает веб-приложения: Восстановление пакета NuGet для веб-сайта, но я также прочитал на странице Nuget, что они добавили совместимость с веб-сайтами ASP.NET, поэтому вот мой вопрос: я делаю что-то не так? Или мне следует перейти на веб-приложение, потому что оно вообще не поддерживает веб-сайты?