MSBuild: Microsoft Build Engine adalah platform untuk membangun aplikasi. Mesin ini, juga dikenal sebagai MSBuild, menyediakan skema XML untuk file proyek yang mengontrol cara platform build menangani dan membangun perangkat lunak. Visual Studio menggunakan MSBuild, tetapi MSBuild tidak bergantung pada Visual Studio. Dengan memanggil msbuild.exe dalam proyek atau file solusi, Anda dapat menjadwalkan dan membangun produk di lingkungan tanpa menginstal Visual Studio.
Memperkenalkan:Login hyperlink terlihat.
Barabala mengatakan begitu banyak, seperti yang dapat dilihat dari namanya, dia adalah kompiler Microsoft, yaitu memprogram proyek menjadi program yang dapat dieksekusi, dll.
Digunakan sebelumnya, modifikasi kode menggunakan notepad txt, kompilasi ulang dengan msbuild, sebagai berikut:
Roslynadalah kompiler .NET sumber terbuka dari Microsoft Corporation. Kompiler mendukung kompilasi kode C# dan Visual Basic serta menyediakan API analisis kode yang kaya. Kami mencoba membuat yang baruKerangka kerja .NET 4.6proyek, menggunakan VS 2019 akan menghasilkan pengaturan MSBuild Project Generate Output Detail secara normal, seperti yang ditunjukkan pada gambar di bawah ini:
Klik kanan pada item untuk mencoba meregenerasi, seperti yang ditunjukkan di bawah ini:
1>------ Semua pembangunan ulang telah dimulai: Proyek: ConsoleApp1, Konfigurasi: Debug ------ CPU apa pun 1> Waktu mulai adalah 2021/3/21 11:38:08. 1>GenerateBindingRedirects: 1> Tidak ada pengalihan pengikatan yang disarankan di ResolveAssemblyReferences. 1>GenerateTargetFrameworkMonikerAttribute: 1> melewatkan target "GenerateTargetFrameworkMonikerAttribute" karena semua file output diperbarui relatif terhadap file input. 1>Kompilasi Inti: 1> C: \ Program File (x86) \ Microsoft Visual Studio \ 2019 \ Enterprise \ MSBuild \ Saat Ini \ Bin \ Roslyn \ csc.exe /noconfig /nowarn:1701,1702,2008 /fullpaths /nostdlib+ /platform: anycpu32bitpreferred /errorreport:prompt /warn:4 /define:DEBUG; TRACE /errorendlocation /preferreduilang:zh-CN /highentropyva+ /reference:"C:\Program Files (x86)\Reference Assembly\Microsoft\Framework\. NETFramework\v4.6\Microsoft.CSharp.dll" /reference:"C:\Program Files (x86)\Reference Assembly\Microsoft\Framework\. NETFramework\v4.6\mscorlib.dll" /reference:"C:\Program Files (x86)\Reference Assembly\Microsoft\Framework\. NETFramework\v4.6\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assembly\Microsoft\Framework\. NETFramework\v4.6\System.Data.DataSetExtensions.dll" /reference:"C:\Program Files (x86)\Reference Assembly\Microsoft\Framework\. NETFramework\v4.6\System.Data.dll" /reference:"C:\Program Files (x86)\Reference Assembly\Microsoft\Framework\. NETFramework\v4.6\System.dll" /reference:"C:\Program Files (x86)\Reference Assembly\Microsoft\Framework\. NETFramework\v4.6\System.Net.Http.dll" /reference:"C:\Program Files (x86)\Reference Assembly\Microsoft\Framework\. NETFramework\v4.6\System.Xml.dll" /reference:"C:\Program Files (x86)\Reference Assembly\Microsoft\Framework\. NETFramework\v4.6\System.Xml.Linq.dll" /debug+ /debug:full /filealign:512 /optimize- /out:obj\Debug\ConsoleApp1.exe /subsystemversion:6.00 /target:exe /utf8output / deterministic+ /langversion:7.3 Program.cs Properti\AssemblyInfo.cs "obj\Debug\. NETFramework,Version=v4.6.AssemblyAttributes.cs" 1> Gunakan kompilasi bersama untuk kompiler dari direktori kolom belakang: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn 1>_CopyAppConfigFile: 1> Menyalin file dari "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config" ke "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.exe.config"。 1>CopyFilesToOutputDirectory: 1> Menyalin file dari "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe" ke "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.exe"。 1> ConsoleApp1 -> C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ConsoleApp1.exe 1> Menyalin file dari "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb" ke "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ ConsoleApp1.pdb"。 1> 1> telah berhasil dihasilkan. 1> 0 peringatan 1> 0 kesalahan 1> 1> Waktu Berlalu 00:00:00.66 ========== Meregenerasi semua: 1 berhasil, 0 gagal, dan 0 ========== dilewati Diunduh dari artikel lain di Internet, hanya untuk referensi:
MSBuild bawaan .NET Framework 4.0 tidak mengenali fitur sintaks C# 6.0.
"MSBuild" => msbuild.exe, "Roslyn" => csc.exe
MSbuild adalah sistem build Visual Studio. Ini memanggil kompiler C# untuk mengkompilasi proyek C#. Roslyn adalah kompiler C# (dan kompiler VB). Oleh karena itu, msbuild menggunakan Roslyn.
Namun, Roslyn berisi lebih dari sekadar compiler. Ini juga termasuk plugin VS yang memberi Anda fitur IDE (daftar penyelesaian, warna, perbaikan kode, dll.).
Selain itu, Roslyn adalah API untuk menganalisis kode sumber, yang dapat Anda gunakan dalam aplikasi Anda sendiri. Untuk kasus terakhir, ada API bernama MSBuildWorkspace yang dapat digunakan untuk membuka proyek atau solusi untuk analisis. Ruang kerja ini menggunakan MSBuild untuk mengetahui semua bagian dari proyek dan solusi. Oleh karena itu, bagian Roslin ini menggunakan MSBuild.
Ringkasan:
Pemahaman saya sendiri adalah bahwa MSBuild adalah kumpulan kompiler Microsoft, dan dia mungkin tidak bertanggung jawab untuk mengkompilasi generasi, tetapi dia akan membantu kami memanggil Roslyn untuk mengkompilasi kode c#. Dia juga dapat mengkompilasi kode dalam bahasa lain dan kemudian memanggil kompiler lain yang sesuai.
Untuk mengkompilasi proyek C#, MSBuild adalah pengambil keputusan dan Roslyn adalah pelaksana.
|