Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 55049|Відповідь: 0

[Джерело] Різниця між компілятором Roslyn MSBuild

[Копіювати посилання]
Опубліковано 21.03.2021 11:55:39 | | | |
MSBuild: Microsoft Build Engine — це платформа для створення додатків. Цей рушій, також відомий як MSBuild, надає XML-схему для файлів проєктів, яка контролює, як платформа збірки обробляє та створює програмне забезпечення. Visual Studio використовує MSBuild, але MSBuild не залежить від Visual Studio. Викликаючи msbuild.exe у файлі проєкту або рішення, ви можете планувати та створювати продукти в умовах без встановленого Visual Studio.

Ввести:Вхід за гіперпосиланням видно.

Барабала багато сказав, як видно з назви, він є компілятором Microsoft, тобто програмує проєкти у виконувані програми тощо.

Раніше модифікуйте код за допомогою txt notepad, перекомпілюйте за допомогою msbuild, наступним чином:

Відлагодження .NET-програм за допомогою Notepad вдома на комп'ютері протягом десяти років
https://www.itsvse.com/thread-9419-1-1.html

Розлінє відкритим компілятором .NET від корпорації Microsoft. Компілятор підтримує компіляцію коду на C# та Visual Basic, а також надає багаті API для аналізу коду.
Ми намагаємося створити новий.NET фреймворк 4.6Проєкт із використанням VS 2019 генеруватиме налаштування MSBuild Project Generate Output Detail у звичайному режимі, як показано на зображенні нижче:



Клацніть правою кнопкою миші на предметі, щоб спробувати відновитися, як показано нижче:



1>------ Всі перебудови вже ініційовані: Проєкт: ConsoleApp1, Конфігурація: Налагодження Будь-який процесор ------
1> Час початку — 2021/3/21, 11:38:08.
1>GenerateBindingRedirects:
1> У ResolveAssemblyReferences немає запропонованих обов'язкових перенаправлений.
1>GenerateTargetFrameworkMonikerAttribute:
1> пропускає цільовий "GenerateTargetFrameworkMonikerAttribute", оскільки всі вихідні файли оновлені відносно вхідних файлів.
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 Властивості\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 ========== пропущено

Завантажено з інших статей в Інтернеті, лише для довідки:


Вбудований MSBuild .NET Framework 4.0 не розпізнає синтаксичні особливості C# 6.0.

"MSBuild" => msbuild.exe, "Roslyn" => csc.exe

MSbuild — це система збірки Visual Studio. Він викликає компілятор C# для компіляції проєкту C#. Roslyn — це компілятор на C# (і компілятор VB). Тому msbuild використовує Roslyn.

Однак Roslyn містить більше, ніж просто компілятор. Також є VS-плагін, який надає функції IDE (списки завершення, кольори, виправлення коду тощо).

Крім того, Roslyn — це API для аналізу вихідного коду, який ви можете використовувати у власних додатках. Для останнього випадку існує API під назвою MSBuildWorkspace, який можна використовувати для відкриття проєкту або рішення для аналізу. Цей робочий простір використовує MSBuild для вивчення всіх частин проєкту та рішення. Тому ця частина Roslin використовує MSBuild.


Зведення:

Наскільки я розумію, MSBuild — це збірка компіляторів Microsoft, і він, можливо, не відповідає за компіляцію генерації, але допоможе нам викликати Roslyn для компілювання коду C#. Він також може компілювати код іншими мовами, а потім викликати відповідні компілятори.

Для компіляції проєктів на C# MSBuild приймає рішення, а Розлін — виконавцем.





Попередній:ASP.NET Core (VI) DI вручну отримує метод інжекції об'єктів
Наступний:.NET/C# Еміт динамічно генерує асемблі
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com