Могу ли я избежать NuGet удаления частного (Copy Local) тега - PullRequest
0 голосов
/ 02 октября 2018

С тех пор как наша команда перешла с Visual Studio 2015 на Visual Studio 2017, у нас возникли проблемы с пакетами NuGet.Каждый раз, когда мы обновляем пакеты (независимо от того, какой канал), например, MVC, обновление удаляет тег «Private» в файле проекта:

<Reference Include="System.Web.Mvc, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.4\lib\net45\System.Web.Mvc.dll</HintPath>
  <Private>True</Private>
</Reference>

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

Можно ли избежать этого в NuGet Packet Manager?Или есть другое решение?

1 Ответ

0 голосов
/ 09 октября 2018

Можно ли этого избежать в NuGet Packet Manager?Или есть какое-то другое решение?

Боюсь, что не существует такого способа решения этой проблемы.Поскольку это поведение по умолчанию для NuGet.

Когда мы обновляем пакет nuget или переустанавливаем пакет nuget, во время удаления элемент удаляется из файла проекта вместе со всеми его метаданными (например, Private).,На этапе установки явные личные метаданные будут добавляться только в случае необходимости.Таким образом, <Private>true</Private> будет удалено, если указанная сборка в любом случае будет скопирована локально.

Таким образом, Visual Studio копирует ссылочные сборки в каталог bin при сборке, даже если тег удаляется изфайл проекта.Инспектор свойств в этой ссылке на сборку также показывает, что Visual Studio продолжает интерпретировать «Копировать локально» как «Истина» даже без этого тега.

Проверьте эту ветку для более подробной информации.

Надеюсь, это поможет.

...