2012-07-02 12 views
9

Ho provato a far funzionare NuGet su Mono 2.10.9 (Mac), ma senza fortuna.Come eseguire NuGet su Mono 2.10.9?

voglio installare Nancy dal repository NuGet:

mono --runtime=v4.0 /usr/local/bin/NuGet.exe install Nancy -Version 0.11.0 

Ma, alla fine con questo messaggio di errore:

Missing method System.Security.Cryptography.CryptoConfig::get_AllowOnlyFipsAlgorithms() in assembly /Library/Frameworks/Mono.framework/Versions/2.10.9/lib/mono/4.0/mscorlib.dll, referenced in assembly /usr/local/bin/NuGet.exe 
Method not found: 'System.Security.Cryptography.CryptoConfig.get_AllowOnlyFipsAlgorithms'. 

posso elencare i repository senza problemi.

mono --runtime=v4.0 /usr/local/bin/NuGet.exe list Nancy 

ho cercato di aggiungere Microsoft.Build.dll per lo stesso percorso NuGet.exe (una punta da un sito. Non riesco a ricordare dove).

io alla fine con questo errore:

Invalid type Microsoft.Build.Evaluation.Project for instance field NuGet.Common.MSBuildProjectSystem:<Project>k__BackingField 
Could not load type 'NuGet.Common.MSBuildProjectSystem' from assembly 'NuGet, Version=2.0.30619.9000, Culture=neutral, PublicKeyToken=null'. 

Qualche suggerimento su come posso ottenere NuGet.exe esecuzione su Mono (Mac)?

risposta

8

Ho paura che non puoi farlo con la versione di Mono che hai installato. Questo particolare versione (2.10.9) non ha incluso la proprietà statica:

System.Security.Cryptography.CryptoConfig.AllowOnlyFipsAlgorithms 

che sembra essere richiesto dalla NuGet.exe "install" caratteristica. Il comando "lista" probabilmente funziona perché non utilizza gli assembly di crittografia (negli assembly .NET vengono caricati pigramente, solo quando sono richiesti dal codice).

Una nota positiva, sembra che nella versione github di Mono classe CryptoConfig è stato aggiornato con questa proprietà, come si può vedere qui:

Current mono CryptoConfig.cs source, on master branch

Questo mostra il cambiamento avrebbe dovuto essere inclusa in 2.10.9 release:

History of changes on mono's CryptoConfig.cs

I AllowOnlyFipsAlgorithms proprietà è stato aggiunto il 2 maggio 2011, un anno fa, e tuttavia non è nella stalla corrente pubblicazione!!! che è strano ...

Si potrebbe provare a scaricare la versione alfa (Mono 2.11.2) e vedere che cosa che fa per voi.

P.S. Ho esaminato i sorgenti per la versione alpha 2.11.2 e sembra che questa proprietà sia inclusa in questa build, quindi provatela. Spero che questo aiuti.

2

Ci sono diversi passaggi che è necessario,

  1. installare tutti i gruppi mono (in modo da ottenere WindowsBase).
  2. certificati di importazione.
  3. Ottieni Microsoft.Build.dll.

Quindi si dovrebbe essere in grado di eseguire NuGet.Ho documentato maggiori dettagli qui,

http://www.lextm.com/2013/01/how-to-use-nuget-on-mono-part-i.html

Problemi correlati