Nuget包管理器更新3.1.1.0损坏

时间:2015-08-02 09:10:49

标签: 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社区版英语

5 个答案:

答案 0 :(得分:27)

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

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

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

FWIW。

答案 1 :(得分: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

我更改了init.ps1的第10行:

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

为:

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

解决了这个问题(只有在你再次恢复软件包并获得破解版本之后)。

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

答案 2 :(得分:2)

此问题由documentation跟踪 我们还与软件包所有者合作,看看他是否可以使用init.ps1来设置项目。此过程不遵循NuGet准则,但我们不确定是否有解决方法。

答案 3 :(得分:2)

我在软件包管理器控制台中遇到了同样的错误,并最终找到了这个帖子。

正如错误消息所说,软件包... \ Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0 \ tools \ lib \ net45目录缺失,因此出现问题。

“lib”目录是出于某种原因直接在“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0”目录下创建的?当我将“lib”目录移动到“tools”目录时,重启VS,错误消息消失。

答案 4 :(得分:0)

我也有这个错误。 将init.ps1的第10行更改为: 这不起作用:

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

这确实有效:

$libDirectory = Join-Path $installPath '\lib\net45'
相关问题