2015-10-17 34 views
6

Tôi đã làm việc trên dự án .NET 3.5 C# bằng cách sử dụng Visual Studio Community 2015, nhưng tôi đã luôn có ý định thực hiện hầu hết sự phát triển trên Linux (Ubuntu Gnome 15.04) sử dụng Mono và MonoDevelop.Phiên bản cũ hơn của .Net chưa được cài đặt với Mono mới nhất?

Tôi đang chạy bản phát hành Mono ổn định mới nhất (4.0.4) và MonoDevelop (5.9.6), hỗ trợ .NET 4.5 và có thể mở tệp giải pháp đã tạo VS mà không gặp sự cố.

Bây giờ tôi đã viết các ứng dụng C++ trên Linux cho phần tốt nhất của một thập kỷ, nhưng C# và .NET hoàn toàn mới đối với tôi. Vì vậy, tôi giả định rằng nếu tôi cài đặt phiên bản Mono có hỗ trợ .NET 4.5, tôi cũng sẽ nhận được .NET 3.5 vì phiên bản mới hơn là bộ siêu lớn hơn - giống như trình biên dịch C++ 14 hỗ trợ C++ 03 .

Tuy nhiên điều này dường như không phải là trường hợp, như bang MonoDevelop (dưới tùy chọn Target Framework cho từng dự án):

  • .NET Framework 4.5.1
  • Mono/NET 4.5
  • Mono/.NET 3.5 (Không cài đặt)

Vì vậy, tôi phải cài đặt phiên bản song song cũ của Mono để có được .NET 3.5 hỗ trợ, hay tôi chỉ bị một vấn đề cấu hình?

Trả lời

5

Không có vấn đề về cấu hình, Mono đã bỏ hỗ trợ cho các khung công tác cũ hơn trong bản phát hành 4.x. Nếu bạn cần biên dịch so với 3.5 hội đồng, thì có, bạn sẽ cần cài đặt song song.

Dropped Support for Old Frameworks

Reference Assemblies

Chúng tôi không còn xây dựng các cụm tài liệu tham khảo cho .NET 2.0, .NET 3.5 hoặc .NET 4.0 API, bây giờ chúng tôi binaries tàu của các hội đồng tham khảo (Các hợp đồng API, không có bất kỳ mã thực thi thực tế nào trong chúng).

Mono giờ đây sẽ chỉ xây dựng các hội đồng .NET 4.5 cũng như các cấu hình dựa trên điện thoại di động .

Lưu ý: Bạn vẫn có thể chạy các cụm được biên dịch cho các cấu hình .NET trước đó trên Mono, không cần phải biên dịch lại chúng (chúng sẽ chỉ chạy trên cụm .NET 4.5).

+0

Ugh, thật là đau. Cảm ơn bạn cho câu trả lời mặc dù. – cmannett85

+0

Chỉ một ghi chú nhỏ, nên là cộng đồng Mono :) Xamarin! = Mono. –

+2

Tôi đã viết một hướng dẫn tại đây: http://blog.rubenwardy.com/2016/07/20/rimworld-install-monodevelop-with-dot-net-3.5/ Tôi thấy rất khó để tìm ra cách cài đặt phiên bản cũ hơn của Mono và MonoDevelop hỗ trợ 3.5, vì vậy tôi đã tạo một bài đăng trên blog. Hy vọng điều này sẽ giúp ai đó – rubenwardy

3

Tôi gặp sự cố tương tự (nhắm mục tiêu dự án .NET 4.0, nhưng hiện tại chỉ có 4.5 có sẵn thông qua mono). Cách giải quyết của tôi là tạo ra một liên kết tượng trưng cho 4.0:

Trên máy tính của Fedora 32 của tôi này đã được thực hiện bởi

cd /usr/lib/mono 
sudo ln -s 4.5 4.0 

Đây là nghĩa vụ phải làm việc vì có một (almost) không có thay đổi phá vỡ giữa .NET 4 và 4.5 - YMMV

2

Cuối cùng, OK. Tôi đang sử dụng Visual Studio cho Mac - https://www.visualstudio.com/vs/visual-studio-mac/

Trong Tùy chọn-> Dự án->.Net Runtimes bạn có thể thay đổi Runtime mặc định .Net. Nó mặc định là Mono 4.8.0.

này nằm ở đây trên một mac: /Library/Frameworks/Mono.framework/Versions/4.8.0

Từ đây bạn có thể tải về phiên bản cũ của Mono https://download.mono-project.com/archive/

tôi tải 3.12.1 từ https://download.mono-project.com/archive/3.12.1/macos-10-x86/ và sao chép nó vào thư mục /Library/Frameworks/Mono.framework/Versions/.

Trong vòng VisualStudio, bạn có thể thêm khung .net và đặt làm mặc định. Dự án của tôi sau đó được biên soạn.

+1

Bạn không phải đặt nó làm mặc định. Bạn có thể chỉ cần chọn Project-> Active Runtime -> Mono 3.12 và sau đó biên dịch – PandaWood

+0

Cảm ơn, tốt để biết. – Emile

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