繁体   English   中英

Nuget包管理器更新3.1.1.0坏了

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM