Làm cách nào để biên dịch dự án .NET mà không cần cài đặt Visual Studio?


36

Tôi muốn biên dịch dự án .NET / C #, nhưng tôi không muốn cài đặt Visual Studio để làm việc này.

Tôi cần những công cụ nào và làm cách nào để biên dịch dự án?


Visual Studio Express không phù hợp với bạn?
Svick

1
@svick: Nếu tôi cần có nó để biên dịch dự án, thì tôi sẽ sử dụng nó. Nhưng trong trường hợp này không cần thiết, vì vậy tôi không phải cài đặt nó trên mọi máy mà tôi muốn triển khai dự án. Tôi chỉ có thể lấy một bản sao từ VCS, biên dịch nó và chạy nó. Cài đặt VS Express sẽ làm quá mức toàn bộ quá trình.
Der Hochstapler

Trong trường hợp đó, một giải pháp đơn giản hơn có thể được triển khai một tập hợp đã biên dịch. Bằng cách đó, bạn không phải thực hiện bất kỳ biên dịch nào trên mọi máy.
Svick

@svick: Cảm ơn vì sự sáng suốt của bạn, nhưng việc triển khai nhị phân cũng thoáng qua tâm trí tôi. Nếu tôi đã coi nó là một sự thay thế có lợi trong trường hợp này, tôi sẽ làm nó. Điều đó đang được nói, câu hỏi và câu trả lời này đã được đăng để mô tả đơn giản một quá trình. Quyết định nếu quá trình này là cách để đi trong trường hợp người dùng là một quyết định còn lại cho họ.
Der Hochstapler

Câu trả lời:


37
  1. Tải xuống và cài đặt .NET Framework mới nhất.
    Ví dụ: bạn có thể sử dụng trình cài đặt cho trình cài đặt .NET Framework 4.5 .

  2. Mở một dấu nhắc lệnh và thay đổi vào thư mục cài đặt của .NET Framework.
    Ví dụ:

    cd \Windows\Microsoft.NET\Framework\v4*
    
  3. Sử dụng MSBuild.exeđể biên dịch giải pháp của bạn.
    Ví dụ:

    msbuild "C:\Users\Oliver\Documents\My Project\My Project.sln" /t:Rebuild /p:Configuration=Release /p:Platform="Any CPU"

Trong trường hợp dự án sử dụng các gói NuGet, bạn có thể làm theo các bước sau để truy xuất chúng:

  1. Tải xuống trình tăng cường dòng lệnh NuGet.exe và, ví dụ, đặt nó bên trong thư mục giải pháp.

  2. Mở một dấu nhắc lệnh và thay đổi vào thư mục giải pháp.
    Ví dụ:

    cd "C:\Users\Oliver\Documents\My Project"
    
  3. Gọi NuGet.exeđể cập nhật các gói cần thiết cho giải pháp này:

    NuGet.exe install "My Project/packages.config" -o packages/
    

Tốt đẹp! Bất kỳ liên kết tài liệu MSBuild? Ngoài ra, đây là một dự án VS đã có, phải không? Điều gì về việc biên dịch mã trong .CS hoặc các tệp nguồn khác?
Karan

2
@Karan - Bất cứ ai quan tâm để đưa ra câu trả lời dựa trên bài viết này msdn.microsoft.com/en-us/l Library / vudio / 78f4aasd.aspx ?
Ramhound

@Ramhound: Tôi đoán ai đó có kiến ​​thức cũng có thể kết hợp tất cả những điều này vào một câu trả lời kiểu FAQ. Ngoài ra một số câu hỏi tiếp theo có thể được giải quyết. Có phải csc.exe cũng được cài đặt cùng với bản cài đặt .NET framework của người dùng cuối? Có bao gồm nếu bạn chỉ cài đặt Hồ sơ khách hàng?
Karan

1
@Karan: Tôi đã thêm một liên kết đến MSBuild.exetài liệu đối số dòng lệnh. Có, đây là một dự án đã có trên máy cục bộ (có thể được tải xuống từ GitHub). Như Ramhound đề cập, csc.exesẽ là công cụ tiếp theo để biên dịch các tệp đơn lẻ. csc.execũng được gói cùng với .NET Framework. Nó là trình biên dịch C # cốt lõi và MSBuild có lẽ chỉ cần gọi nó. Không chắc chắn về hồ sơ khách hàng, nhưng tôi sẽ cho rằng họ được bao gồm trong đó.
Der Hochstapler

1
Một lý do csc.execần được đưa vào là vì Hồ sơ khách hàng bao gồm XmlSerializerlớp. Lớp này tạo ra các hội đồng tuần tự hóa (sử dụng csc.exe) tại thời gian chạy.
heavyyd

3

Nếu bạn muốn tránh cài đặt Visual Studio, bạn có thể muốn dùng thử Mono , một khung phát triển và thời gian chạy .NET đa nền tảng và mã nguồn mở. Mono dựa trên tiêu chuẩn ECMA được công bố cho C # và tương thích trực tiếp với các ứng dụng C # được biên dịch trước.

Mono cũng bao gồm một công cụ có tên XBuild có thể thay thế hoàn toàn MSBuild. Xem bài viết này từ dự án Mono liên quan đến việc chuyển một dự án từ MSBuild sang XBuild. Mô tả một dòng về XBuild từ Wiki:

xbuild là triển khai msbuild của Mono và nó cho phép các dự án có tệp msbuild được biên dịch tự nhiên trên Linux.

Lưu ý rằng ngoài Linux, Windows và Mac OS X cũng được hỗ trợ.


1
Có bất kỳ lý do nào người ta sẽ sử dụng monotrên windows?
Rishav

2
@Rishav Cân nhắc chính trị? Có lẽ đối với một người bắt buộc phải sử dụng Windows nhưng muốn sử dụng càng ít công nghệ Microsoft khác càng tốt. Chỉ cần suy đoán, mặc dù.
Jamie
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.