【问题标题】:WebSharper error when building under Mac OS X在 Mac OS X 下构建时出现 WebSharper 错误
【发布时间】:2014-09-18 20:38:58
【问题描述】:

我正在尝试在 Mac OSX 下使用 WebSharper 构建项目,但出现以下错误:

Target WebSharperCompile:
        Compiling with WebSharper..
/Volumes/Data/Dev/Landmark_tools/packages/WebSharper.2.5.125.62/build/WebSharper.targets: error : Non-negative number required.
Parameter name: srcOffset  at System.Buffer.BlockCopy (System.Array src, Int32 srcOffset, System.Array dst, Int32 dstOffset, Int32 count) [0x00000] in <filename unknown>:0 
  at Mono.Cecil.PE.Image.GetDebugHeader (System.Byte[]& header) [0x00000] in <filename unknown>:0 
  at Mono.Cecil.ModuleDefinition.GetDebugHeader (System.Byte[]& header) [0x00000] in <filename unknown>:0 
  at Mono.Cecil.ModuleDefinition.ProcessDebugHeader () [0x00000] in <filename unknown>:0 
  at Mono.Cecil.ModuleDefinition.ReadSymbols (ISymbolReader reader) [0x00000] in <filename unknown>:0 
  at Mono.Cecil.ModuleReader.ReadSymbols (Mono.Cecil.ModuleDefinition module, Mono.Cecil.ReaderParameters parameters) [0x00000] in <filename unknown>:0 
  at Mono.Cecil.ModuleReader.CreateModuleFrom (Mono.Cecil.PE.Image image, Mono.Cecil.ReaderParameters parameters) [0x00000] in <filename unknown>:0 
  at Mono.Cecil.ModuleDefinition.ReadModule (System.IO.Stream stream, Mono.Cecil.ReaderParameters parameters) [0x00000] in <filename unknown>:0 
  at Mono.Cecil.AssemblyDefinition.ReadAssembly (System.IO.Stream stream, Mono.Cecil.ReaderParameters parameters) [0x00000] in <filename unknown>:0 
  at IntelliFactory.WebSharper.Compiler.Loader.load (Microsoft.FSharp.Core.FSharpOption`1 flp, System.Byte[] bytes, Microsoft.FSharp.Core.FSharpOption`1 symbols, IntelliFactory.Core.AssemblyResolver aR) [0x00000] in <filename unknown>:0 
  at IntelliFactory.WebSharper.Compiler.Loader.LoadFile (System.String path) [0x00000] in <filename unknown>:0 
    Task "WebSharperTask" execution -- FAILED
    Done building target "WebSharperCompile" in project "/Volumes/Data/Dev/Landmark_tools/RegionsInfo/RegionsInfo.fsproj".-- FAILED
Done building project "/Volumes/Data/Dev/Landmark_tools/RegionsInfo/RegionsInfo.fsproj".-- FAILED

Build FAILED.
Errors:

/Volumes/Data/Dev/Landmark_tools/RegionsInfo/RegionsInfo.fsproj (default targets) ->
/Volumes/Data/Dev/Landmark_tools/packages/WebSharper.2.5.125.62/build/WebSharper.targets (WebSharperCompile target) ->

    /Volumes/Data/Dev/Landmark_tools/packages/WebSharper.2.5.125.62/build/WebSharper.targets: error : Non-negative number required.
Parameter name: srcOffset  at System.Buffer.BlockCopy (System.Array src, Int32 srcOffset, System.Array dst, Int32 dstOffset, Int32 count) [0x00000] in <filename unknown>:0 
  at Mono.Cecil.PE.Image.GetDebugHeader (System.Byte[]& header) [0x00000] in <filename unknown>:0 
  at Mono.Cecil.ModuleDefinition.GetDebugHeader (System.Byte[]& header) [0x00000] in <filename unknown>:0 
  at Mono.Cecil.ModuleDefinition.ProcessDebugHeader () [0x00000] in <filename unknown>:0 
  at Mono.Cecil.ModuleDefinition.ReadSymbols (ISymbolReader reader) [0x00000] in <filename unknown>:0 
  at Mono.Cecil.ModuleReader.ReadSymbols (Mono.Cecil.ModuleDefinition module, Mono.Cecil.ReaderParameters parameters) [0x00000] in <filename unknown>:0 
  at Mono.Cecil.ModuleReader.CreateModuleFrom (Mono.Cecil.PE.Image image, Mono.Cecil.ReaderParameters parameters) [0x00000] in <filename unknown>:0 
  at Mono.Cecil.ModuleDefinition.ReadModule (System.IO.Stream stream, Mono.Cecil.ReaderParameters parameters) [0x00000] in <filename unknown>:0 
  at Mono.Cecil.AssemblyDefinition.ReadAssembly (System.IO.Stream stream, Mono.Cecil.ReaderParameters parameters) [0x00000] in <filename unknown>:0 
  at IntelliFactory.WebSharper.Compiler.Loader.load (Microsoft.FSharp.Core.FSharpOption`1 flp, System.Byte[] bytes, Microsoft.FSharp.Core.FSharpOption`1 symbols, IntelliFactory.Core.AssemblyResolver aR) [0x00000] in <filename unknown>:0 
  at IntelliFactory.WebSharper.Compiler.Loader.LoadFile (System.String path) [0x00000] in <filename unknown>:0 

     0 Warning(s)
     1 Error(s)

我可以在 Windows 下构建相同的项目而没有任何问题。 在 Windows 下,我可以简单地执行 msbuild 或指定配置 msbuild /p:Configuration=Release 甚至 Fake 编译器。 在 Mac OSX 下,无论我尝试使用什么(使用 xbuild 或 Fake),我总是遇到同样的错误。上次我能够使用发布模式构建项目,但在这里它也不起作用。

我在github下托管了项目:https://github.com/MangelMaxime/BugReport

我知道不建议但最好有相同的条件...

【问题讨论】:

    标签: macos f# msbuild xbuild websharper


    【解决方案1】:

    看起来像是最近修复的 Cecil 错误:"Non-negative number required" trying to read f# dll

    【讨论】:

    • 感谢重播,今晚我试试看。
    • 我仍然有同样的错误。我尝试更改从 NuGet 下载的 Cecil 更改 WebSharper 使用的那些。什么都没有改变......刚刚在 2012 年的掘金日期看到了塞西尔。将尝试找到其他地方。
    • 真的很奇怪,我使用与上一个相同的 NuGet 构建了一个项目,并且它正在编译...