Проблемы с подписью dll в F # на Mono - PullRequest
5 голосов
/ 17 сентября 2010

Я получаю сообщение об ошибке при попытке подписать dll в F # на моно:

$ 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

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, это имеет какое-то значение?

Обновление:

Использование Mono 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 ]

3 голосов
/ 17 сентября 2010

Похоже, что fsc - это P / Invoking родного Windows API, который не переносим. Возможно, вам следует поднять проблему с командой F #.

2 голосов
/ 21 сентября 2010

Попробуйте использовать sn для подписи после создания сборки.

Для этого сначала нужно скомпилировать с флагом - delaysign , чтобы создать сборку с подписью с задержкой.

Затем вы можете использовать утилиту sn с флагом -R, чтобы подписать сборку позже.

Я не уверен на 100%, что это сработает, поскольку у меня нет компьютера с Linux или Mac, на котором можно было бы его протестировать. Хотя стоит попробовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...