Możesz odwoływać się do całej infrastruktury kompilacji wymaganej dla stosu technologii deweloperskiej, takiego jak zestaw SDK platformy .NET, po prostu odwołując się do zestawu właściwości i obiektów docelowych znanych zbiorczo jako zestaw SDK projektu według określonego identyfikatora. Identyfikator odwołuje się do określonego .props zestawu plików zawierających definicje właściwości i .targets pliki zawierające definicje obiektów docelowych. Odwołujesz się do zestawu SDK projektu przy użyciu atrybutu Sdk w węźle projektu najwyższego poziomu.
Istnieje wiele zestawów SDK dystrybuowanych przez firmę Microsoft. Zestaw SDK projektu, do których odwołuje się w poprzednim przykładzie, ma nazwę Microsoft.NET.Sdk. Zestawy SDK projektu skojarzone z platformami .NET Core i .NET 5 i nowszymi są wymienione w temacie Omówienie zestawu .NET Project SDK.
Odwołuje się do zestawu SDK projektu
Istnieją trzy sposoby odwołowania się do zestawu SDK projektu:
Użyj atrybutu Sdk w elemecie <Project/>
XML
<ProjectSdk="My.Custom.Sdk">
...
</Project>
Import niejawny jest dodawany do góry i dolnej części projektu, jak wspomniano wcześniej.
Aby określić określoną wersję zestawu SDK, dołącz go do atrybutu Sdk :
Po jawnym dołączeniu importu do projektu masz pełną kontrolę nad kolejnością.
W przypadku korzystania z <Import/> elementu można również określić opcjonalny Version atrybut. Można na przykład określić wartość <Import Project="Sdk.props" Sdk="My.Custom.Sdk" Version="1.2.3" />.
Ostrzeżenie
Jeśli zmienisz projekt tak, aby używał <Import/> elementów, upewnij się, że dodasz zestaw .props SDK i .targets importujesz go, a następnie usuniesz zestaw SDK z <Project/> elementu i <Sdk/> elementów. Nie można tego zrobić, spowoduje dwukrotne zaimportowanie i MSB4011 ostrzeżenie.
Jak są rozwiązywane zestawy SDK projektu
Podczas oceniania importu program MSBuild dynamicznie rozpoznaje ścieżkę do zestawu SDK projektu na podstawie podanej nazwy i wersji. Program MSBuild zawiera również listę zarejestrowanych narzędzi rozpoznawania zestawów SDK, które są wtyczkami, które lokalizują zestawy SDK projektu na maszynie. Te wtyczki obejmują:
Program rozpoznawania pakietów NuGet, który wysyła zapytania do skonfigurowanych źródeł danych pakietów dla pakietów NuGet, które pasują do określonego identyfikatora i wersji zestawu SDK.
Ten program rozpoznawania nazw jest aktywny tylko wtedy, gdy określono opcjonalną wersję. Można go używać dla dowolnego niestandardowego zestawu SDK projektu.
Program rozpoznawania zestawu SDK platformy .NET, który rozwiązuje problemy z zestawami SDK programu MSBuild zainstalowanymi za pomocą zestawu .NET SDK.
Ten program rozpoznawania lokalizuje zestawy SDK projektu, takie jak Microsoft.NET.Sdk i Microsoft.NET.Sdk.Web które są częścią produktu.
Domyślny program rozpoznawania rozpoznawania zestawów SDK zainstalowanych w programie MSBuild.
Narzędzie rozpoznawania zestawu SDK opartego na nuGet obsługuje określanie wersji w pliku global.json , co umożliwia kontrolowanie wersji zestawu SDK projektu w jednym miejscu, a nie w każdym projekcie:
Podczas kompilacji można używać tylko jednej wersji każdego zestawu SDK projektu. Jeśli odwołujesz się do dwóch różnych wersji tego samego zestawu SDK projektu, program MSBuild emituje ostrzeżenie. Zaleca się, aby nie określać wersji w projektach, jeśli wersja jest określona w pliku global.json.
Utwórz projekt platformy .NET i dowiedz się, jak dodawać pakiety i zarządzać zależnościami pakietów w projekcie. Użyj interfejsu wiersza polecenia platformy .NET Core i rejestru NuGet, aby dodać biblioteki i narzędzia do aplikacji języka C# za pomocą programu Visual Studio Code.
Utwórz programową aplikację kompilacji na różnych maszynach z tą samą wersją programu MSBuild i upewnij się, że kompilacje z aplikacji pasują do kompilacji w programie Visual Studio lub MSBuild.exe.
Microsoft Build Engine (MSBuild) pliki projektu znajdują się w centrum procesu kompilacji i wdrażania. Ten temat rozpoczyna się od koncepcyjnego omówienia programu MSBuild...
Zapoznaj się ze specjalnymi importami Directory.Build.props i Directory.Build.targets, których można użyć do dostosowania systemu kompilacji w programie Visual Studio.