У меня есть проект, в котором установлен пакет NuGet с именем MSBuildTasks. Он устанавливает два файла: MSBuild.Community.Tasks.targets и MSBuild.Community.Tasks.dll в каталог .build в каталоге решения. Эта ссылка на пакет была добавлена в файл packages.config в этом каталоге проекта, поэтому, когда я создаю проект (и с включенными настройками восстановления пакета NuGet), он восстанавливает пакет, и это здорово, потому что тогда я могу распространять исходный код другим разработчиков и собрать его на нашем сервере сборки без каких-либо недостающих файлов...
Однако проблема в том, что когда NuGet восстанавливает пакет, он не восстанавливает эти два файла в ожидаемое место, в котором они были изначально, когда я впервые установил его с помощью команды Install-Package MSBuildTasks
, которая находилась в каталоге $(SolutionDir)\.build
. Вместо этого он установил его в каталог $(SolutionDir)\packages\MSBuildTasks.1.4.0.78\tools
, поэтому теперь, если я хочу включить файл MSBuild.Community.Tasks.targets, я должен указать этот путь абсолютно в моем .csproj или другом файле .targets. Это представляет проблему, поскольку номер версии, несомненно, изменится, и для исправления потребуется ручная работа.
Есть ли способ восстановить файлы .targets и .dll MSBuildTasks в исходное расположение $(SolutionDir)\.build
, куда они были установлены впервые? Текущее поведение восстановления в каталог пакетов, хотя оно имеет смысл для других пакетов, кажется ошибкой для этого конкретного пакета, поскольку я не смогу узнать номер версии каталога, который нужно включить в мои другие .targets или . csproj-файлы.