Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Můžete odkazovat na veškerou infrastrukturu sestavení potřebnou pro sadu vývojových technologií, jako je sada .NET SDK, jednoduše odkazováním na sadu vlastností a cílů, které se souhrnně označují jako sada SDK projektu podle jeho konkrétního ID. ID odkazuje na určitou sadu .props souborů, které obsahují definice vlastností, a .targets soubory, které obsahují cílové definice. Na sadu SDK projektu odkazujete pomocí atributu Sdk v uzlu projektu nejvyšší úrovně.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net46</TargetFramework>
</PropertyGroup>
</Project>
Během vyhodnocení projektu přidá nástroj MSBuild implicitní importy v horní a dolní části souboru 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>
Microsoft distribuuje mnoho sad SDK. Sada SDK projektu odkazovaná v předchozím příkladu má moniker Microsoft.NET.Sdk. Sady SDK projektu přidružené k .NET Core a .NET 5 a novějším jsou uvedené v přehledu sady .NET Project SDK.
Odkaz na sadu SDK projektu
Existují tři způsoby, jak odkazovat na sadu SDK projektu:
Sdk Použití atributu v elementu Project
<Project Sdk="My.Custom.Sdk">
...
</Project>
Implicitní import se přidá do horní a dolní části projektu, jak je popsáno dříve.
Pokud chcete zadat konkrétní verzi sady SDK, připojte ji k atributu Sdk :
<Project Sdk="My.Custom.Sdk/1.2.3">
...
</Project>
Použití elementu nejvyšší úrovně Sdk
<Project>
<Sdk Name="My.Custom.Sdk" Version="1.2.3" />
...
</Project>
Implicitní import se přidá do horní a dolní části projektu, jak je popsáno dříve.
Atribut Version není povinný.
Použití elementu Import kdekoli v projektu
<Project>
<PropertyGroup>
<MyProperty>Value</MyProperty>
</PropertyGroup>
<Import Project="Sdk.props" Sdk="My.Custom.Sdk" />
...
<Import Project="Sdk.targets" Sdk="My.Custom.Sdk" />
</Project>
Pokud do projektu explicitně zahrnete importy, máte plnou kontrolu nad pořadím.
Při použití elementu Import můžete také zadat volitelný Version atribut. Můžete například zadat <Import Project="Sdk.props" Sdk="My.Custom.Sdk" Version="1.2.3" />.
Výstraha
Pokud změníte projekt tak, aby používal Import elementy, nezapomeňte přidat oba .props i .targets importy a odebrat sadu SDK z Project elementu a Sdk elementů. Pokud to neuděláte, výsledkem budou duplicitní importy a upozornění MSB4011.
Jak se řeší sady SDK projektu
Při vyhodnocování importu nástroj MSBuild dynamicky určuje cestu k sadě SDK projektu na základě zadaného názvu a verze. Nástroj MSBuild obsahuje také seznam registrovaných resolvérů SDK, což jsou moduly plug-in, které na vašem počítači vyhledávají sady SDK projektu. Mezi tyto zásuvné moduly patří:
Řešitel založený na NuGetu, který otazuje vaše nakonfigurované kanály balíčků pro balíčky NuGet, které se shodují s ID a verzí sady SDK, které jste zadali.
Tento rezolver je aktivní pouze v případě, že jste zadali volitelnou verzi. Dá se použít pro libovolnou vlastní sadu SDK projektu.
Řešitel rozhraní .NET SDK, který řeší sady SDK MSBuild, jež jsou nainstalovány s rozhraním .NET SDK.
Tento vyhledávač vyhledá sady SDK projektu, například
Microsoft.NET.SdkaMicrosoft.NET.Sdk.Web, které jsou součástí produktu.Výchozí překladač, který řeší sady SDK nainstalované pomocí nástroje MSBuild.
Překladač sady SDK založený na NuGetu podporuje zadání verze v souboru global.json , který umožňuje řídit verzi sady SDK projektu na jednom místě, nikoli v každém jednotlivém projektu:
{
"msbuild-sdks": {
"My.Custom.Sdk": "5.0.0",
"My.Other.Sdk": "1.0.0-beta"
}
}
Během sestavení lze použít pouze jednu verzi každé sady SDK projektu. Pokud odkazujete na dvě různé verze stejné sady SDK projektu, nástroj MSBuild vygeneruje upozornění. Pokud je verze určená v souboruglobal.json, nedoporučuje se ve vašich projektech zadávat verzi.