在OSX Yosemite上恢复DNU未知的头部

3
我曾尝试多次按照官方Asp.Net文档和其他地方的指南,在我的MacBook上运行.Net。最近一次尝试是使用Yeoman生成器指南,可在这里找到。
然而,每当我尝试运行DNU Restore时,都会出现相同的错误,尽管针对不同的库。错误信息为“未知标头:”,后跟一个数字,该数字因库而异。以下是一个示例(仅包含前几行和后几行以保持简洁):
Error: DownloadPackageAsync: https://www.nuget.org/api/v2/package/Microsoft.AspNet.Loader.IIS/1.0.0-beta5
  Unknown header: 3649249205
----------
System.NotSupportedException: Unknown header: 3649249205
  at SharpCompress.Common.Zip.ZipHeaderFactory.ReadHeader (UInt32 headerBytes, System.IO.BinaryReader reader) [0x00000] in <filename unknown>:0
  at SharpCompress.Common.Zip.SeekableZipHeaderFactory+<ReadSeekableHeader>c__Iterator0.MoveNext () [0x00000] in <filename unknown>:0
  at SharpCompress.Archive.Zip.ZipArchive+<LoadEntries>c__Iterator0.MoveNext () [0x00000] in <filename unknown>:0
  at SharpCompress.LazyReadOnlyCollection`1+LazyLoader[SharpCompress.Archive.Zip.ZipArchiveEntry].MoveNext () [0x00000] in <filename unknown>:0
  at System.IO.Compression.ZipArchive.CreateZip (System.IO.Stream stream, ZipArchiveMode mode) [0x00000] in <filename unknown>:0
  at System.IO.Compression.ZipArchive..ctor (System.IO.Stream stream, ZipArchiveMode mode, Boolean leaveOpen) [0x00000] in <filename unknown>:0
  at Microsoft.Framework.PackageManager.Restore.NuGet.PackageUtilities.EnsureValidPackageContents (System.IO.Stream stream, Microsoft.Framework.PackageManager.PackageInfo package) [0x00000] in <filename unknown>:0
  at Microsoft.Framework.PackageManager.Restore.NuGet.PackageUtilities+<>c__DisplayClass1_0.<OpenNupkgStreamAsync>b__0 (System.IO.Stream stream) [0x00000] in <filename unknown>:0
  at Microsoft.Framework.PackageManager.Restore.NuGet.HttpSource+<GetAsync>d__8.MoveNext () [0x00000] in <filename unknown>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0
  at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () [0x00000] in <filename unknown>:0
  at Microsoft.Framework.PackageManager.Restore.NuGet.PackageUtilities+<OpenNupkgStreamAsync>d__1.MoveNext () [0x00000] in <filename unknown>:0

...

Restore failed
Unknown header: 3649249205

NuGet Config files used:
    /Users/jamie.morris/.config/NuGet/NuGet.Config

Feeds used:
    https://www.myget.org/F/aspnetvnext/api/v2/
    https://nuget.org/api/v2/

我尝试删除~/.dnx/packages的内容,并从~/.dnx/runtimes中删除旧版本的dnx。目前我正在使用1.0.0-beta6-12170运行时。

有其他人遇到过类似的问题或者知道如何解决吗?

编辑:

这里是dnvm list的输出:

Active Version              Runtime Arch Location             Alias
------ -------              ------- ---- --------             -----
  *    1.0.0-beta6-12170    mono         ~/.dnx/runtimes      default

以下是mono --version的输出结果:
Mono JIT compiler version 3.12.1 (tarball Tue Mar 17 15:03:14 GMT 2015)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           normal
    SIGSEGV:       altstack
    Notification:  kqueue
    Architecture:  amd64
    Disabled:      none
    Misc:          softdebug
    LLVM:          supported, not enabled.
    GC:            sgen

你使用哪个运行时?Mono 还是尝试使用 Core CLR?如果是 Mono,那么是哪个版本? - natemcmaster
我已经在问题中添加了运行时和Mono版本。 - Maloric
1个回答

5

升级到Mono 4.0.1或更高版本。


我尝试从http://www.mono-project.com安装最新版本的mono,但当我输入“mono --version”时仍然得到相同的版本。除非它是dnx运行时的一部分,否则我不知道现有版本的mono来自哪里,因此不确定如何卸载它或强制mono使用新安装。 - Maloric
运行 which mono 命令,这将告诉您正在执行哪个命令。 - natemcmaster
你也可以运行 readlink `which mono` 命令来获取指向此路径的位置。 - natemcmaster
通过上述操作,我意识到我已经通过brew安装了3.12.1版本。由于这似乎是目前在brew上的最新版本,我卸载了它,现在mono使用我手动安装的版本。dnu restore现在完美地工作了。谢谢。 - Maloric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接