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.Sdk
aMicrosoft.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.