Nuget包管理器更新3.1.1.0坏了

Big*_*lve 21 visual-studio nuget

我将Nuget包管理器更新到3.1.1.0版.更新后打开任何项目给我错误消息:copy-item:找不到路径'c:\ users {username}\documents\visual studio 2015\projects {project name}\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform. 1.0.0\tools\lib \net45'因为它不存在.....在文件init.ps1中

我发现给init.ps1的$ installpath变量不同于旧的nuget到实际的附加的\ tools子目录名,这显然是错误的,并给出了错误.

如何影响此$ installpath参数或将nuget降级为3.1.0?

我在新安装的vm中也检查了这种行为,结果相同,VS安装 - >确定,更新到nuget 3.1.1 - >已损坏.

环境:Windows 10德语,Visual Studio 2015社区版英语

Rob*_*Rob 29

不确定这是否会对其他人有所帮助,但我在VS2015上使用Microsoft.CodeDom.Providers.DotNetCompilerPlatform得到了完全相同的错误,修复它的方法是在Package Manager控制台中执行以下操作:

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Run Code Online (Sandbox Code Playgroud)

然后保存,关闭并重新打开VS后,不再出现错误.无需为我编辑任何ps1文件.

FWIW.

  • `DotNetCompilerPlatform.1.0.2`为我修复了它,在VS 2015中引用了`DotNetCompilerPlatform.1.0.0`。我收到错误:_Join-Path:无法将'System.Object []'转换为'System.String类型'由参数'ChildPath'要求。指定的方法不受支持.at .... init.ps1:13 char:57_,也_Join-Path:无法将参数绑定到参数“ Path”,因为它为null ... init.ps1:14 char:44_ (2认同)

Tod*_*son 20

我也得到了同样的错误(如下):

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
Run Code Online (Sandbox Code Playgroud)

我改变了第10行init.ps1:

$libDirectory = Join-Path $installPath 'lib\net45'
Run Code Online (Sandbox Code Playgroud)

至:

$libDirectory = Join-Path $installPath '..\lib\net45'
Run Code Online (Sandbox Code Playgroud)

它解决了这个问题(直到你再次恢复软件包并得到破解版本).

真正的解决方法是让软件包维护者更新他们的副本init.ps1.我会跟进,看看能否完成.:)