ฉันจะรวบรวมโครงการ. NET โดยไม่ต้องติดตั้ง Visual Studio ได้อย่างไร


36

ฉันต้องการรวบรวมโครงการ .NET / C # แต่ฉันไม่ต้องการติดตั้ง Visual Studio เพื่อทำสิ่งนี้

ฉันต้องการเครื่องมืออะไรและฉันจะรวบรวมโครงการได้อย่างไร


Visual Studio Express จะไม่ทำงานสำหรับคุณหรือไม่
svick

1
@svick: ถ้าฉันต้องการให้คอมไพล์โปรเจ็กต์ฉันก็จะใช้มัน แต่ในกรณีนี้มันไม่จำเป็นดังนั้นฉันไม่จำเป็นต้องติดตั้งลงในเครื่องทุกเครื่องที่ฉันต้องการปรับใช้โครงการ ฉันสามารถดึงสำเนาจาก VCS รวบรวมและเรียกใช้ การติดตั้ง VS Express จะทำให้กระบวนการทั้งหมดซับซ้อนมากเกินไป
Der Hochstapler

ในกรณีนั้นโซลูชันที่ง่ายกว่าอาจปรับใช้ชุดประกอบที่คอมไพล์แล้ว ด้วยวิธีนี้คุณไม่จำเป็นต้องคอมไพล์ในเครื่องทุกเครื่อง
svick

@svick: ขอบคุณสำหรับความเข้าใจของคุณ แต่การปรับใช้ไบนารีสั้นใจของฉันเช่นกัน ถ้าฉันคิดว่ามันเป็นทางเลือกที่เป็นประโยชน์ในกรณีนี้ฉันก็จะทำมัน ที่ถูกกล่าวคำถามและคำตอบนี้ถูกโพสต์เพื่ออธิบายกระบวนการ การตัดสินใจว่ากระบวนการนี้เป็นวิธีที่จะไปในกรณีของผู้ใช้หรือไม่เป็นการตัดสินใจที่เหลือให้พวกเขา
Der Hochstapler

คำตอบ:


37
  1. ดาวน์โหลดและติดตั้ง. NET Framework ล่าสุด
    ตัวอย่างเช่นคุณสามารถใช้ติดตั้งสำหรับ.NET Framework 4.5 ติดตั้ง

  2. เปิดพร้อมท์คำสั่งและเปลี่ยนเป็นไดเร็กทอรีการติดตั้งของ. NET Framework
    ตัวอย่างเช่น:

    cd \Windows\Microsoft.NET\Framework\v4*
    
  3. ใช้MSBuild.exeเพื่อรวบรวมทางออกของคุณ
    ตัวอย่างเช่น:

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

ในกรณีที่โครงการใช้แพคเกจ NuGet คุณสามารถทำตามขั้นตอนเหล่านี้เพื่อดึงข้อมูลได้:

  1. ดาวน์โหลดตัวเพิ่มคำสั่ง NuGet.exe Commandrapperและวางไว้ในไดเรกทอรีโซลูชัน

  2. เปิดพร้อมต์คำสั่งและเปลี่ยนเป็นไดเร็กทอรีโซลูชัน
    ตัวอย่างเช่น:

    cd "C:\Users\Oliver\Documents\My Project"
    
  3. เรียกใช้NuGet.exeเพื่ออัพเดตแพ็กเกจที่จำเป็นสำหรับโซลูชันนี้:

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

ดี! ลิงก์เอกสาร MSBuild ใด ๆ นอกจากนี้สำหรับโครงการ VS ที่มีอยู่แล้วใช่ไหม สิ่งที่เกี่ยวกับการรวบรวมรหัสใน. CS หรือไฟล์ต้นฉบับอื่น ๆ
Karan

2
@Karan - ดูแลทุกคนเพื่อให้คำตอบขึ้นอยู่กับบทความนี้msdn.microsoft.com/en-us/library/vstudio/78f4aasd.aspx ?
Ramhound

@ แรมฮาวด์: ฉันเดาว่ามีคนที่มีความรู้สามารถรวมทั้งหมดนี้ไว้ในคำตอบประเภทคำถามที่พบบ่อยเดียว นอกจากนี้ยังมีคำถามติดตามผลที่สามารถตอบได้ csc.exe นั้นมาพร้อมกับเฟรมเวิร์ก. NET ของผู้ใช้ปลายทางหรือไม่ มันรวมอยู่หรือไม่ถ้าคุณติดตั้งโปรไฟล์ลูกค้า?
Karan

1
@ Karan: ฉันได้เพิ่มลิงค์ไปยังMSBuild.exeเอกสารอาร์กิวเมนต์บรรทัดคำสั่ง ใช่นี่เป็นโครงการที่มีอยู่ในเครื่องท้องถิ่นแล้ว (อาจดาวน์โหลดจาก GitHub) ในฐานะที่เป็น Ramhound กล่าวถึงcsc.exeจะเป็นเครื่องมือที่ไปสู่การรวบรวมไฟล์เดียว csc.exeรวมอยู่กับ. NET Framework เช่นกัน มันเป็นคอมไพเลอร์ C # หลักและ MSBuild อาจจะเรียกมัน ไม่แน่ใจเกี่ยวกับโปรไฟล์ลูกค้า แต่ฉันจะถือว่าพวกเขารวมอยู่ในนั้น
Der Hochstapler

1
เหตุผลหนึ่งที่csc.exeต้องรวมคือเพราะโปรไฟล์ลูกค้ารวมถึงXmlSerializerชั้นเรียน คลาสนี้สร้างแอสเซมบลีที่เป็นอนุกรม (โดยใช้csc.exe) ในเวลาทำงาน
หนัก

3

หากคุณต้องการที่จะหลีกเลี่ยงการติดตั้ง Visual Studio คุณอาจต้องการที่จะลองโมโนเป็นข้ามแพลตฟอร์มและเปิดแหล่งรันไทม์ NET และกรอบการพัฒนา Mono เป็นไปตามมาตรฐาน ECMA ที่เผยแพร่สำหรับ C # และเข้ากันได้โดยตรงกับแอปพลิเคชัน C # ที่รวบรวมไว้ล่วงหน้า

Mono ยังมีเครื่องมือที่ชื่อว่า XBuildซึ่งสามารถแทนที่ MSBuild ได้อย่างสมบูรณ์ ดูบทความนี้จากโครงการโมโนเกี่ยวกับการย้ายโครงการจาก MSBuild ไปที่ XBuild คำอธิบายหนึ่งบรรทัดของ XBuild จาก Wiki:

xbuild เป็นการดำเนินการของ msbuild ของ Mono และอนุญาตให้โครงการที่มีไฟล์ msbuild ถูกคอมไพล์โดยกำเนิดบน Linux

โปรดทราบว่านอกจาก Linux, Windows และ Mac OS X แล้วยังรองรับ


1
มีเหตุผลอย่างใดอย่างหนึ่งที่จะใช้monoบน windows?
Rishav

2
@Rishav ข้อพิจารณาทางการเมือง? บางทีสำหรับผู้ที่ต้องใช้ Windows แต่ต้องการใช้เทคโนโลยี Microsoft อื่น ๆ ให้น้อยที่สุดเท่าที่จะทำได้ เพียงแค่เก็งกำไรแม้ว่า
เจมี่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.