MSBuild: Microsoft Build Engine은 애플리케이션을 구축하는 플랫폼입니다. 이 엔진은 MSBuild라고도 불리며, 빌드 플랫폼이 소프트웨어를 처리하고 빌드하는 방식을 제어하는 프로젝트 파일에 대한 XML 스키마를 제공합니다. Visual Studio는 MSBuild를 사용하지만, MSBuild는 Visual Studio에 의존하지 않습니다. 프로젝트나 솔루션 파일에서 msbuild.exe를 호출하면 Visual Studio가 설치되지 않은 환경에서 제품을 예약하고 빌드할 수 있습니다.
소개하다:하이퍼링크 로그인이 보입니다.
바라발라는 이름에서 알 수 있듯이, 그는 마이크로소프트의 컴파일러로, 프로젝트를 실행 가능한 프로그램으로 프로그래밍하는 역할을 합니다.
이전에 사용했던 방법은, txt 노트패드로 코드를 수정한 후 msbuild로 다시 컴파일한 방법입니다:
로슬린마이크로소프트 코퍼레이션의 오픈소스 .NET 컴파일러입니다. 컴파일러는 C# 및 Visual Basic 코드 컴파일을 지원하며 풍부한 코드 분석 API를 제공합니다. 우리는 새로운 것을 만들려고 노력합니다.NET 프레임워크 4.6VS 2019를 사용하는 프로젝트는 아래 이미지와 같이 MSBuild 프로젝트 출력 세부 정보 생성 설정을 정상적으로 생성합니다:
아래에 표시된 대로 아이템을 우클릭하여 재생을 시도하세요:
1>------ 모든 재구성이 시작되었습니다: Project: ConsoleApp1, Configuration: Debug Any CPU ------ 1> 시작 시간은 2021/3/21 11:38:08입니다. 1>생성 바인딩: 1> ResolveAssemblyReferences에는 제안된 바인딩 리디렉션이 없습니다. 1>생성목표프레임워크모니커속성: 1>은 모든 출력 파일이 입력 파일에 비해 최신 상태이기 때문에 타겟 "GenerateTargetFrameworkMonikerAttribute"를 건너뛰고 있습니다. 1>코어컴파일: 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\. NETFramework,Version=v4.6.AssemblyAttributes.cs" 1> 컴파일러를 위해 뒤 열 디렉터리에서 공유 컴파일 사용: 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"에서 "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\로 파일 복사 ConsoleApp1.exe.config". 1>CopyFilesToOutputDirectory: 1> "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.exe"에서 "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> "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\obj\Debug\ConsoleApp1.pdb"에서 "C:\Users\itsvse_nuc\source\repos\ConsoleApp1\ConsoleApp1\bin\Debug\"로 파일을 복사합니다. ConsoleApp1.pdb". 1> 1>가 성공적으로 생성되었습니다. 1> 0 경고 1> 0 오류 1> 1> 경과 시간 00:00:00.66 ========== 모두 재생: 1개 성공, 0개 실패, 0개 건너뛸 ========== 참고용으로 인터넷의 다른 기사에서 다운로드한 내용입니다:
.NET Framework 4.0에 내장된 MSBuild는 C# 6.0 문법 기능을 인식하지 못합니다.
"MSBuild" => msbuild.exe, "Roslyn" => csc.exe
MSbuild는 Visual Studio의 빌드 시스템입니다. 이 프로그램은 C# 컴파일러를 호출하여 C# 프로젝트를 컴파일합니다. Roslyn은 C# 컴파일러(및 VB 컴파일러)입니다. 따라서 msbuild는 Roslyn을 사용합니다.
하지만 Roslyn은 단순한 컴파일러 이상의 기능을 포함하고 있습니다. 또한 완성 목록, 색상, 코드 수정 등 IDE 기능을 제공하는 VS 플러그인도 포함되어 있습니다.
또한 Roslyn은 소스 코드를 분석하는 API로, 여러분이 자신의 애플리케이션에서 사용할 수 있습니다. 마지막 경우에는 MSBuildWorkspace라는 API가 있는데, 이를 통해 프로젝트나 솔루션을 열어 분석할 수 있습니다. 이 작업 공간은 MSBuild를 사용하여 프로젝트와 솔루션의 모든 부분을 파악합니다. 따라서 이 로슬린 구역은 MSBuild를 사용합니다.
요약:
제가 알기로는 MSBuild는 마이크로소프트 컴파일러들의 집합체이며, 그가 생성 파일을 직접 담당하지는 않지만, Roslyn을 호출해 C# 코드를 컴파일하는 데 도움을 줄 것입니다. 또한 다른 언어로 코드를 컴파일한 뒤 해당 컴파일러를 호출할 수 있습니다.
C# 프로젝트 컴파일에서는 MSBuild가 의사결정자이고 Roslyn이 집행자입니다.
|