[英]Nuget package manager update 3.1.1.0 broken
我将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社区版英语
不确定这是否会对其他人有所帮助,但我在VS2015上使用Microsoft.CodeDom.Providers.DotNetCompilerPlatform得到了完全相同的错误,修复它的方法是在Package Manager控制台中执行以下操作:
Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
然后保存,关闭并重新打开VS后,不再出现错误。 无需为我编辑任何ps1文件。
FWIW。
我也得到了同样的错误(如下):
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
我更改了init.ps1
第10行:
$libDirectory = Join-Path $installPath 'lib\net45'
至:
$libDirectory = Join-Path $installPath '..\lib\net45'
它解决了这个问题(直到你再次恢复软件包并得到破解版本)。
真正的解决方法是让软件包维护者更新他们的init.ps1
副本。 我会跟进,看看能否完成。 :)
此问题由https://github.com/NuGet/Home/issues/1125跟踪,我们还与包所有者合作,看看他是否可以使用init.ps1来设置项目。 此过程不遵循NuGet准则,但我们不确定是否有解决方法。
我在Package Manager Console中遇到了同样的错误并最终找到了这个帖子。
正如错误消息所说,包... \\ Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0 \\ tools \\ lib \\ net45目录缺失,因此问题。
出于某种原因,“lib”目录直接在“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0”目录下创建? 当我将“lib”目录移动到“tools”目录时,重新启动VS,错误消息消失了。
我也有这个错误。 将init.ps1
第10行更改为:这不起作用:
$libDirectory = Join-Path $installPath '..\lib\net45'
这确实有效:
$libDirectory = Join-Path $installPath '\lib\net45'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.