2012-07-02 11 views
9

NuGetをMono 2.10.9(Mac)で動作させようとしましたが、運がありません。Mono 2.10.9でNuGetを実行するには?

私はNuGetリポジトリからナンシーをインストールしたい:

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

しかし、このエラーメッセージで終わる:

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'. 

私は問題なくリポジトリを一覧表示することができます。

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

私はNuGet.exeと同じパスにMicrosoft.Build.dllを追加しようとしました(サイトからのヒント。私はどこ覚えていません)。

私は、このエラーで終わる:

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'. 

私はNuGet.exeは、モノ(マック)上で実行して得ることができる方法上の任意の提案を?

答えて

8

あなたがインストールしたMonoのバージョンでは、そうすることはできません。 その特定のリリース(2.10.9)は、静的プロパティが含まれていませんでした:

System.Security.Cryptography.CryptoConfig.AllowOnlyFipsAlgorithms 

機能を「インストール」NuGet.exeによって必要とされると思われます。 "list"コマンドは、暗号アセンブリを使用しないためにおそらく機能します(.NETアセンブリでは、遅延コードが必要です)。

Current mono CryptoConfig.cs source, on master branch

は、これは変更が含まれている必要がありますを示しています。あなたがここに見ることができるように正のノートで

は、それは、CryptoConfigクラスは、このプロパティで更新されたモノのgithubのバージョンのように思えます2.10.9リリースで:

History of changes on mono's CryptoConfig.cs

AllowOnlyFipsAlgorithmsプロパティは、完全な一年前、5月2日に添加し、まだそれは現在の安定ではありませんリリース! これは変わっています...

アルファ版(Mono 2.11.2)をダウンロードし、それがあなたのために何をするか試してみることができます。

P.S. 私は2.11.2アルファ版のソースを見てきました。このビルドにこのプロパティが含まれているようですので、試してみてください。 これが役立つことを願っています。

2

あなたが必要とするいくつかのステップは、(WindowsBaseを取得するように)

  1. は、すべてのモノのアセンブリをインストールし、あります。
  2. 証明書をインポートします。
  3. Microsoft.Build.dllを入手してください。

NuGetを実行できるはずです。私はここで詳細を文書化しました。

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

関連する問題