2012-07-02 36 views
9

Tôi đã cố gắng để NuGet chạy trên Mono 2.10.9 (Mac), nhưng không có may mắn.Làm thế nào để chạy NuGet trên Mono 2.10.9?

tôi muốn cài đặt Nancy từ kho NuGet:

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

Nhưng, kết thúc với thông báo lỗi này:

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

tôi có thể liệt kê các kho không có vấn đề.

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

Tôi đã cố gắng thêm Microsoft.Build.dll vào cùng một đường dẫn như NuGet.exe (một mẹo từ trang web. Tôi không thể nhớ vị trí).

tôi kết thúc với lỗi này:

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

Bất kỳ đề xuất về làm thế nào tôi có thể nhận được NuGet.exe chạy trên Mono (Mac)?

Trả lời

8

Tôi e rằng bạn không thể làm điều đó với phiên bản Mono bạn đã cài đặt. Đó đặc biệt phát hành (2.10.9) không bao gồm các thuộc tính tĩnh:

System.Security.Cryptography.CryptoConfig.AllowOnlyFipsAlgorithms 

mà dường như được yêu cầu bởi NuGet.exe "cài đặt" tính năng. Lệnh "list" có thể hoạt động vì nó không sử dụng các cụm mật mã (trong các assembly .NET được nạp một cách lười biếng, chỉ khi thực thi mã yêu cầu chúng).

Trên một lưu ý tích cực, nó có vẻ như trong phiên bản github của Mono lớp CryptoConfig đã được cập nhật với khách sạn này, như bạn có thể xem tại đây:

Current mono CryptoConfig.cs source, on master branch

Điều này cho thấy sự thay đổi nên đã được đưa vào trong 2.10.9 phát hành:

History of changes on mono's CryptoConfig.cs

các AllowOnlyFipsAlgorithms bất động sản đã được bổ sung trên 02 tháng năm 2011, một năm đầy đủ trước, nhưng nó không phải là trong ổn định hiện tại giải phóng!!! Điều lạ lùng ...

Bạn có thể thử tải xuống bản phát hành alpha (Mono 2.11.2) và xem điều gì làm cho bạn.

P.S. Tôi đã xem các nguồn cho phiên bản alpha 2.11.2 và có vẻ như thuộc tính này được bao gồm trong bản dựng này, vì vậy hãy thử nó. Hy vọng điều này sẽ hữu ích.

Các vấn đề liên quan