|
|
Yayınlandı 21.03.2021 11:55:39
|
|
|
|

MSBuild: Microsoft Build Engine, uygulama oluşturmak için bir platformdur. MSBuild olarak da bilinen bu motor, proje dosyaları için bir XML şeması sağlar ve bu şemayı derleme platformunun yazılımı nasıl işlediğini ve oluşturduğunu kontrol eder. Visual Studio MSBuild kullanıyor, ancak MSBuild Visual Studio'ya bağımlı değil. Bir proje veya çözüm dosyasında msbuild.exe çağırarak, Visual Studio yüklenmemiş bir ortamda ürünleri zamanlayabilir ve geliştirebilirsiniz.
Tanıtmak:Bağlantı girişi görünür.
Barabala çok şey söyledi, adından da anlaşılacağı üzere, Microsoft'un derleyicisi, yani projeleri çalıştırılabilir programlara programlıyor vb.
Daha önce kullanılan, txt notepad ile kodu değiştirin, msbuild ile yeniden derleyin, aşağıdaki gibi:
RoslynMicrosoft Corporation'dan açık kaynaklı .NET derleyicisidir. Derleyici, C# ve Visual Basic kod derlemesini destekler ve zengin kod analiz API'leri sağlar. Yeni bir tane yaratmaya çalışıyoruz.NET framework 4.6proje, VS 2019 kullanarak MSBuild Projesi Çıktı Detayı Oluşturma ayarını aşağıdaki görselde gösterildiği gibi normal şekilde oluşturacaktır:
Yenilemeyi denemek için öğeye sağ tıklayın, aşağıda gösterildiği gibi:
1>------ Tüm yeniden yapılandırmalar başlatıldı: Proje: ConsoleApp1, Yapılandırma: Herhangi bir CPU ------ 1> Başlangıç saati 2021/3/21 11:38:08. 1>GenerateBindingYönlendirmeler: 1> ResolveAssemblyReferences'ta önerilen bağlayıcı yönlendirme yoktur. 1>GenerateTargetFrameworkMonikerAttribute: 1> hedefi atlamaktadır çünkü tüm çıktı dosyaları giriş dosyalarına göre günceldir. 1>CoreCompile: 1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\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 Assemblies\Microsoft\Framework\. NETFramework\v4.6\Microsoft.CSharp.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\mscorlib.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Data.DataSetExtensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Data.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Net.Http.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\. NETFramework\v4.6\System.Xml.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\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 Properties\AssemblyInfo.cs "obj\Debug\. NETFrame, Version=v4.6.AssemblyAttributes.cs" 1> Derleyiciler için arka sütun dizininden paylaşılan derleme kullanın: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn 1>_CopyAppConfigFile: 1> "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config"den "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\bin\Debug\" sayfasına dosyaların kopyalanması ConsoleApp1.exe.config"。 1>KopyaFilesToOutputDirectory: 1> "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe" sayfasından "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\" sayfasına dosyaların kopyalanması ConsoleApp1.exe"。 1> ConsoleApp1 -> C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ConsoleApp1.exe 1> "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb" dosyalarından "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\bin\Debug\ ConsoleApp1.pdb"。 1> 1> başarıyla üretildi. 1> 0 uyarı 1> 0 hata 1> 1> Geçtiler Zamanı 00:00:00.66 ========== Hepsini yenile: 1 başarılı, 0 başarısız ve 0 ========== atlanmış Sadece referans için internetteki diğer makalelerden indirilmiştir:
.NET Framework 4.0'ın dahili MSBuild'i C# 6.0 sözdizimi özelliklerini tanımıyor.
"MSBuild" => msbuild.exe, "Roslyn" => csc.exe
MSbuild, Visual Studio'nun yapı sistemidir. C# derleyicisini çağırarak C# projesini derler. Roslyn, bir C# derleyicisidir (ve VB derleyicisidir). Bu nedenle, msbuild Roslyn kullanıyor.
Ancak Roslyn sadece bir derleyici değil, daha fazlasını içeriyor. Ayrıca IDE özellikleri (tamamlama listeleri, renkler, kod düzeltmeleri vb.) veren bir VS eklentisi de var.
Ayrıca, Roslyn kaynak kodunu analiz etmek için bir API'dir ve bunu kendi uygulamalarınızda kullanabilirsiniz. Son durumda, analiz için bir proje veya çözüm açmak için kullanılabilen MSBuildWorkspace adlı bir API vardır. Bu çalışma alanı, bir projenin ve çözümün tüm bölümlerini bulmak için MSBuild kullanır. Bu nedenle, Roslin'in bu bölümü MSBuild kullanıyor.
Özet:
Benim anladığım kadarıyla MSBuild Microsoft derleyicilerinden oluşan bir koleksiyon ve nesli derlemekten sorumlu olmayabilir, ancak Roslyn'i c# kodunu derlememiz için bize yardımcı olacak. Ayrıca diğer dillerde kod derleyebilir ve ardından diğer karşılık gelen derleyicileri çağırabilir.
C# projelerini derlemek için MSBuild karar verici, Roslyn ise yürütücü.
|
Önceki:ASP.NET Core (VI) DI, nesneleri enjekte etme yöntemini manuel olarak elde ederÖnümüzdeki:.NET/C# Emit dinamik olarak assemble üretir
|