MSBuild: A Microsoft Build Engine egy platform, amely alkalmazások építésére szolgál. Ez a motor, más néven MSBuild, XML sémát biztosít a projektfájlok számára, amely szabályozza, hogyan kezeli és építi a szoftvert a build platform. A Visual Studio az MSBuild-et használja, de az MSBuild nem függ a Visual Studio-tól. Ha msbuild.exe meghívása egy projektben vagy megoldásfájlban történik, ütemezheted és készítheted a termékeket olyan környezetben, ahol nincs Visual Studio telepítve.
Bevezet:A hiperlink bejelentkezés látható.
Barabala rengeteget mondott, ahogy a névből is látszik, ő a Microsoft fordítója, vagyis projekteket futtatható programokba programoz, stb.
Korábban használta: módosítsd a kódot txt jegyzettömbben, fordítsd újra msbuild-lel, az alábbiak szerint:
Roslyna Microsoft Corporation nyílt forráskódú .NET fordítója. A fordító támogatja a C# és Visual Basic kódfordítást, és gazdag kódelemző API-kat biztosít. Próbálunk újat létrehozni.NET framework 4.6a VS 2019 használatával generálja az MSBuild Project Generate Output Detail beállítást normálisan, ahogy az alábbi képen is látható:
Jobb kattintással a tárgyra, hogy megpróbáld regenerálni, ahogy az alábbiakban látható:
1>------ Minden újraépítés elindult: Projekt: ConsoleApp1, Konfiguráció: Bármilyen CPU hibakeresése ------ 1> A kezdési időpont: 2021/3/21, 11:38:08. 1>GenerateBindingÁtredirects: 1> A ResolveAssemblyReferences-ben nincsenek javasolt kötelező átirányítások. 1>GenerateTargetFrameworkMonikerAttribute: Az 1> kihagyja a célpontot "GenerateTargetFrameworkMonikerAttribute", mert minden kimeneti fájl naprakész a bemeneti fájlokhoz képest. 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> Használj megosztott fordítást a hátsó oszlop könyvtárából származó fordítókhoz: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn 1>_CopyAppConfigFile: 1> Fájlok másolása a "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\App.config" fájlról a "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\bin\Debug\" címre ConsoleApp1.exe.config"。 1>CopyFilesToOutputDirectory: 1> Fájlok másolása a "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe" fájlról a "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\" címre ConsoleApp1.exe"。 1> ConsoleApp1 -> C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\ConsoleApp1.exe 1> Fájlok másolása a "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb" fájlokra a "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\" címre ConsoleApp1.pdb"。 1> 1> sikeresen generált. 1> 0 figyelmeztetés 1> 0 hiba 1> 1> Eltelt idő 00:00:00.66 ========== Regenerálj mindet: 1 sikerrel, 0 sikerrel, és 0 ========== kihagyva Más internetes cikkekből letöltve, csak hivatkozásként:
A .NET Framework 4.0 beépített MSBuild nem ismeri fel a C# 6.0 szintaxisfunkciókat.
"MSBuild" => msbuild.exe, "Roslyn" => csc.exe
Az MSbuild a Visual Studio build rendszere. A C# fordítót hívja a C# projekt fordításához. Roslyn egy C# fordító (és VB fordító). Ezért az msbuild Roslyn-t használja.
Azonban a Roslyn több mint egy fordítót tartalmaz. Tartalmaz egy VS plugint is, amely IDE funkciókat kínál (befejezési listák, színek, kódjavítások stb.).
Ezen felül a Roslyn egy API a forráskód elemzésére, amelyet saját alkalmazásaidban is használhatsz. Az utolsó esetben létezik egy MSBuildWorkspace nevű API, amellyel egy projektet vagy megoldást lehet elemzésre nyitni. Ez a munkaterület MSBuild segítségével megismeri a projekt és megoldás minden részét. Ezért Roslin ezen része MSBuild rendszert használ.
Összefoglalás:
Saját értelmezésem szerint az MSBuild Microsoft fordítóinak gyűjteménye, és lehet, hogy nem ő felelős a generáció fordításáért, de segíteni fog hívni Roslint a c# kód fordításához. Képes kódot fordítani más nyelveken is, majd más megfelelő fordítókat hívni.
A C# projektek összeállításában az MSBuild a döntéshozó, Roslyn pedig a végrehajtó.
|