Nuget包管理器更新3.1.1.0破碎



我更新了Nuget包管理器到3.1.1.0版本。更新后打开任何项目给我的错误信息:无法找到路径"c:users{username}documentsvisual studio 2015projects{项目名}packagesMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0toolslibnet45",因为它不存在.....文件init.ps1

我发现$installpath变量给init。Ps1在额外附加的tools子目录名称中与旧的nuget不同,这显然是错误的,并给出错误。

如何影响这个$installpath参数或将nuget降级到3.1.0?

我在新安装的vm中也检查了这种行为,结果相同,VS安装-> ok,更新到nuget 3.1.1 ->破碎。

环境:Windows 10德语,Visual Studio 2015 Community Edition英语

不确定这是否会帮助其他人,但我在VS2015上得到了与Microsoft.CodeDom.Providers.DotNetCompilerPlatform完全相同的错误,为我修复它的是在包管理器控制台上做以下操作:

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

然后保存,关闭和重新打开VS,没有更多的错误。不需要为我编辑任何ps1文件。

就其价值而言。

我也得到了相同的错误(如下所示):

Copy-Item : Cannot find path 'C:DevelopmentGitHubpd-tech-demobackendpackagesMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0toolslibnet45' because it does not exist.
At C:DevelopmentGitHubpd-tech-demobackendpackagesMicrosoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0toolsinit.ps1:23 char:1
+ Copy-Item $libDirectory* $binDirectory | Out-Null
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ObjectNotFound: (C:Development...toolslibnet45:String) [Copy-Item], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand

我把init.ps1的第10行从:

$libDirectory = Join-Path $installPath 'libnet45'

:

$libDirectory = Join-Path $installPath '..libnet45'

修复问题(直到您再次恢复软件包并得到损坏的版本)。

真正的解决方法是让包维护者更新他们的init.ps1副本。我去跟进一下,看看我们能不能完成这件事。:)

此问题由https://github.com/NuGet/Home/issues/1125跟踪我们还与包所有者合作,看看他是否可以使用init。Ps1用于设置项目。这个过程不遵循NuGet指南,但我们不确定是否有解决方案。

我在包管理器控制台得到了同样的错误,最终找到了这个线程。

正如错误信息所说,包…Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0toolslibnet45目录丢失,因此出现问题。

"lib"目录是直接在"Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0"目录下创建的,因为某些原因?当我将"lib"目录移动到"tools"目录时,重新启动VS,错误信息消失了。

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

$libDirectory = Join-Path $installPath '..libnet45'

这个成功了:

$libDirectory = Join-Path $installPath 'libnet45'

相关内容

  • 没有找到相关文章