1

我已经创建了一个用于在 C#(控制台应用程序)中测试 Web 应用程序的框架所有的包都由 Nuget 包管理器管理。当我尝试通过 nuget安装/卸载软件包时,我遇到了异常(粘贴在最后)。

工具/配置

  1. 视觉工作室 - 社区 2013
  2. .NET 框架 - 4.5.2 硒
  3. 网络驱动程序 - 3.141.0
  4. MSBuild.NUnit 版本="1.0.2"
  5. NUnit 版本="3.12.0"
  6. NUnit3TestAdapter 版本="3.15.1" NU
  7. NUnitTestAdapter 版本="2.2.0"

让我知道是否有人需要任何其他详细信息。我查看了与 Nuget 相关的线程,但没有找到任何有用的线程来提供一些想法或解决方案。

如果您需要任何其他信息,请告诉我|| 请提出一些想法/解决方案 例外

PM> '5.0.0+42a8779499c1d1ed2488c2e6b9e2ee6ff6107766' is not a valid version string.
Parameter name: version

At line:1 char:50
+ '5.0.0+42a8779499c1d1ed2488c2e6b9e2ee6ff6107766' is not a valid versi ...
+                                                  ~~
Unexpected token 'is' in expression or statement.
PM> 
PM> Install-Package NuGet.Frameworks -Version 4.7.0
Install-Package : '5.0.0+42a8779499c1d1ed2488c2e6b9e2ee6ff6107766' is not a valid version string.
Parameter name: version
At line:1 char:1
+ Install-Package NuGet.Frameworks -Version 4.7.0
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Install-Package], ArgumentException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackag 
   eCommand

PM> uninstall-package Microsoft.TestPlatform.TranslationLayer -version 16.6.1
uninstall-package : '5.0.0+42a8779499c1d1ed2488c2e6b9e2ee6ff6107766' is not a valid version string.
Parameter name: version
At line:1 char:1
+ uninstall-package Microsoft.TestPlatform.TranslationLayer -version 16 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Uninstall-Package], ArgumentException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.UninstallPack 
   ageCommand

PM> nuget update -self
nuget : The term 'nuget' is not recognized as the name of a cmdlet, function, script file, or 
operable program. Check the spelling of the name, or if a path was included, verify that the path 
is correct and try again.
At line:1 char:1
+ nuget update -self
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (nuget:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

截图

NugetPackageManagerError 截图

安装 Nuget

4

2 回答 2

0

您尝试恢复的包(或者在这种情况下,它的依赖项之一)使用 SemVer 2.0.0 版本控制,此处向我们指出,+后面是版本号中的构建元数据。

不幸的是,Visual Studio 2013 附带的包管理器不支持 SemVer 2.0.0。它仅由 VS2017 15.3+(和带有特殊扩展名的 VS2015)原生支持。使用 Semantic Versioning 2.0.0 的软件包实际上对旧客户端隐藏,例如 VS 2013。*

Nuget 包版本控制文档的部分Semantic Versioning 2.0.0(加粗我的)下:

如果您将特定于 SemVer v2.0.0 的包上传到 nuget.org,则该 包对旧客户端不可见,并且仅对以下 NuGet 客户端可用:

  • NuGet 4.3.0+
  • Visual Studio 2017 版本 15.3+
  • 带有 NuGet VSIX v3.6.0 的 Visual Studio 2015
  • 点网
    • dotnetcore.exe (.NET SDK 2.0.0+)

作为一种解决方法,您可以下载更新版本的 nuget 命令行工具,然后nuget restore从命令行手动执行您的项目。

请注意,越来越多的软件包正在切换到 Semantic Versioning 2.0.0。根据您使用的软件包,您可能会越来越频繁地遇到此问题。如果可能的话,我建议您升级您的 Visual Studio 版本(VS Community 是免费的)。

* 稍后的工具(例如dotnet pushnuget push)发出了一条有点烦人的警告消息,提醒作者他们的包正在使用 SemVer 2.0.0 并且旧客户端将无法使用。在这种情况下,包作者要么没有注意到这一事实,要么已经确定版本控制方案的好处超过了包消费者的潜在损失。

于 2020-05-25T18:40:45.977 回答
0

不知何故,我设法通过包管理器控制台让安装/卸载包工作。

我之前曾尝试过这些步骤,但不确定为什么它当时不起作用。

  1. 未安装的 nuget:工具 > 扩展和更新 > 已安装 > Nuget
  2. 重新安装 nuget:工具 > 扩展和更新 > 在线 [Visual Studio 库] > Nuget > 安装
  3. 更改了包管理器设置:工具 > Nuget 包管理器 > 包管理器设置 > Nuget 包管理器 > 包源 > 仅选中“nuget.org”,其余所有内容均未选中 > 单击“确定”。
  4. 重新启动 VS 2013(如果需要,请重新启动系统。)

通过包管理器控制台截图安装/卸载

编辑 1: 也可以通过 UI 查看。 也可以通过 UI 看到

于 2020-05-26T09:05:42.770 回答