Подтвердить что ты не робот

Обновление пакета обновления пакета Nuget 3.1.1.0

Я обновил менеджер пакетов Nuget до версии 3.1.1.0. После открытия обновления любой проект дает мне сообщение об ошибке: copy-item: не удается найти путь 'c:\users {username}\documents\visual studio 2015\projects {имя проекта}\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\tools\lib\net45', потому что он не существует..... в файле init.ps1

Я обнаружил, что переменная $installpath, данная init.ps1, отличается от старого nuget к фактическому дополнительно добавленному имени подкаталога \tools, что явно неверно и дает ошибку.

Как я могу влиять на этот параметр $installpath или downgrade nuget на 3.1.0?

Я дважды проверил это поведение также в новом установленном vm с тем же результатом, VS установлен → ok, обновлен до nuget 3.1.1 → сломан.

Окружающая среда: Windows 10 German, Visual Studio 2015 Community Edition English

4b9b3361

Ответ 1

Я получил ту же ошибку (следующим образом):

Copy-Item : Cannot find path 'C:\Development\GitHub\pd-tech-demo\backend\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\tools\lib\net45' because it does not exist.
At C:\Development\GitHub\pd-tech-demo\backend\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\tools\init.ps1:23 char:1
+ Copy-Item $libDirectory\* $binDirectory | Out-Null
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ObjectNotFound: (C:\Development\...tools\lib\net45:String) [Copy-Item], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand

Я изменил строку 10 init.ps1 на:

$libDirectory = Join-Path $installPath 'lib\net45'

в

$libDirectory = Join-Path $installPath '..\lib\net45'

который исправляет проблему (только до тех пор, пока вы снова не вернете пакет и не получите поврежденную версию).

Реальное исправление заключается в том, чтобы поддерживающие пакет обновления обновили свою копию init.ps1. Я буду следить и посмотреть, сможем ли мы это сделать.:)

Ответ 2

Не уверен, что это поможет другим, но я получил ту же самую ошибку на VS2015 с Microsoft.CodeDom.Providers.DotNetCompilerPlatform и то, что исправлено для меня, должно было сделать следующее в консоли диспетчера пакетов:

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

Затем после сохранения, закрытия и повторного открытия VS больше ошибок. Нет необходимости редактировать файлы ps1 для меня.

FWIW.

Ответ 3

Эта проблема отслеживается https://github.com/NuGet/Home/issues/1125 мы также работаем с владельцем пакета, чтобы узнать, может ли он перейти с помощью init.ps1 для настройки проекта. Этот процесс не соответствует рекомендациям NuGet, но мы не уверены, есть ли еще обходной путь.

Ответ 4

Я получил ту же ошибку в консоли диспетчера пакетов и в итоге нашел этот поток.

Как сказано в сообщении об ошибке, каталог пакетов... \Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\tools\lib\net45 отсутствует, поэтому проблема.

Каталог "lib" создается по какой-либо причине в каталоге "Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0"? Когда я переместил каталог "lib" в каталог "tools", перезапустите VS, сообщение об ошибке исчезнет.

Ответ 5

У меня также была эта ошибка. Изменение строки 10 init.ps1 на: Это не помогло:

$libDirectory = Join-Path $installPath '..\lib\net45'

Это работало:

$libDirectory = Join-Path $installPath '\lib\net45'