Я пытался очистить локальный кеш как событие перед сборкой в проекте, но это происходит ПОСЛЕ восстановления nuget, поэтому мне приходится дважды перестраивать, чтобы это решение работало.
Может быть, вы можете попробовать использовать цель «после сборки» для очистки кэша?
Я имею в виду, что в сценарии, где у вас есть проекты от А до G, проект А потребляетпакет под названием NugetOne.Мы создали проект A, и NugetOne будет добавлен в кеш. (C:\Users\xxx\.nuget\packages
).
Теперь мы работаем в проекте B, который также будет использовать NugetOne, мы хотим удалить кеш перед восстановлением, когдапостроение проекта в ВС.Но согласно комментариям выше, этот подход не удался.
Так что, возможно, мы можем добавить цель, которая запускается после сборки, чтобы очистить кеш.И мы можем добавить цель в проект A или проект B, чтобы получить аналогичный результат:
Если мы добавим его в A: После успешного построения A кэш был очищен, то при создании B нам не нужнобеспокоиться о влиянии кэша.
Если мы добавим его в B: он работает как событие pre-build-event, которое вы используете, придется дважды перестроить, чтобы он заработал.
Notконечно, если это то, что вам нужно, но если вы хотите среду разработки, в которой на разработку не будет влиять кеш из других проектов. Вы можете рассмотреть возможность использования Directory.Build.props .
Мое содержимое Directory.Build.props
(добавьте его в папку / repos, оно повлияет на все ваши решения в нем, добавьте его в решение и оно повлияет на все проекты в этом решении):
<Project>
<Target Name="CleanCache" AfterTargets="build">
<Message Importance="High" Text="Clean the cache..."/>
<xxx //Do your clean cache action here! />
</Target>
</Project>
Надеюсьпомогает в некоторых аспектах.