Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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, które zawierają definicje właściwości i .targets pliki, które zawierają definicje celów. Odwołujesz się do zestawu SDK projektu przy użyciu atrybutu Sdk w węźle projektu najwyższego poziomu.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net46</TargetFramework>
</PropertyGroup>
</Project>
Podczas oceny projektu program MSBuild dodaje niejawne importy w górnej i dolnej części pliku projektu:
<Project>
<!-- Implicit top import -->
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<PropertyGroup>
<TargetFramework>net46</TargetFramework>
</PropertyGroup>
<!-- Implicit bottom import -->
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
</Project>
Istnieje wiele zestawów SDK dystrybuowanych przez firmę Microsoft. Zestaw SDK projektu, do którego odwołuje się poprzedni przykład, 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łaj się do zestawu SDK projektu
Istnieją trzy sposoby odwołowania się do zestawu SDK projektu:
Użyj atrybutu Sdk w elemecie Project
<Project Sdk="My.Custom.Sdk">
...
</Project>
Import niejawny jest dodawany na górze i na dole projektu, jak wcześniej omówiono.
Aby określić określoną wersję zestawu SDK, dołącz go do atrybutu Sdk :
<Project Sdk="My.Custom.Sdk/1.2.3">
...
</Project>
Użyj elementu najwyższego poziomu Sdk
<Project>
<Sdk Name="My.Custom.Sdk" Version="1.2.3" />
...
</Project>
Import niejawny jest dodawany na górze i na dole projektu, jak wcześniej omówiono.
Atrybut Version nie jest wymagany.
Użyj elementu Import w dowolnym miejscu w projekcie
<Project>
<PropertyGroup>
<MyProperty>Value</MyProperty>
</PropertyGroup>
<Import Project="Sdk.props" Sdk="My.Custom.Sdk" />
...
<Import Project="Sdk.targets" Sdk="My.Custom.Sdk" />
</Project>
Po jawnym dołączeniu importów do projektu zyskujesz pełną kontrolę nad ich 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ł elementów Import, upewnij się, że dodasz importy .props i .targets oraz usuniesz SDK z elementu Project i elementów Sdk. Niewykonanie tego spowoduje zduplikowane importy 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ą:
Rozwiązywacz oparty na NuGet, który wysyła zapytania do skonfigurowanych źródeł pakietów w poszukiwaniu pakietów NuGet pasujących do wskazanego identyfikatora i wersji SDK.
Ten resolver 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.SdkiMicrosoft.NET.Sdk.Webktóre są częścią produktu.Domyślny program rozpoznawania pakietów SDK zainstalowanych przy użyciu MSBuild.
Narzędzie rozpoznawania zestawu SDK opartego na oprogramowaniu NuGet obsługuje określanie wersji w pliku global.json , co pozwala kontrolować wersję zestawu SDK projektu w jednym miejscu, a nie w każdym projekcie:
{
"msbuild-sdks": {
"My.Custom.Sdk": "5.0.0",
"My.Other.Sdk": "1.0.0-beta"
}
}
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 .