代码之家  ›  专栏  ›  技术社区  ›  Benjol

在Mono上用F#签名dll时出现问题

  •  5
  • Benjol  · 技术社区  · 14 年前

    我在mono上尝试在F#中签名dll时出错:

    $ mono /usr/local/share/FSharp-2.0.0.0/bin/fsc.exe\
       --target:library \
       --keyfile:../../external/MyKeyFile.snk\
       AssemblyInfo.fs\
       ../../fs/FooBar.fs\  
       -o:FooBar.dll
    

    Microsoft (R) F# 2.0 Compiler build 2.0.0.0 Copyright (c) Microsoft Corporation. All Rights Reserved.`
    
    error FS2014: A problem occurred writing the binary '': A call to StrongNameGetPublicKey failed (mscoree.dll)`
    

    密钥文件是在Windows中生成的,这有什么区别吗?

    更新:

    使用单声道2.6.4

    $ mono --version 
    
    Mono JIT compiler version 2.6.4 (tarball Mon Jun 21 19:26:21 UTC 2010) 
    Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com
    TLS:           __thread
    GC:            Included Boehm (with typed GC and Parallel Mark)
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  amd64
    Disabled:      none
    
    2 回复  |  直到 14 年前
        1
  •  3
  •   Mikayla Hutchinson    14 年前

    看起来fsc正在调用本机windowsapi,这是不可移植的。你应该向F小组提出这个问题。

        2
  •  2
  •   Rick Minerich    14 年前

    在生成程序集后尝试使用sn进行签名。

    为此,首先需要使用 --delaysign flag

    然后您可以使用 sn 带有-R标志的实用程序在之后对程序集进行签名。

    推荐文章