Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
U kunt verwijzen naar alle build-infrastructuur die is vereist voor een ontwikkelingstechnologiestack, zoals de .NET SDK, door te verwijzen naar een set eigenschappen en doelen die gezamenlijk een project-SDK worden genoemd door de specifieke id. De id verwijst naar een bepaalde set .props bestanden die eigenschapsdefinities bevatten en .targets bestanden die doeldefinities bevatten. U verwijst naar een project-SDK met behulp van het Sdk kenmerk op het projectknooppunt op het hoogste niveau.
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>net46</TargetFramework>
    </PropertyGroup>
</Project>
Tijdens de evaluatie van het project voegt MSBuild impliciete import toe aan de bovenkant en onderkant van het projectbestand:
<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>
Er zijn veel SDK's gedistribueerd door Microsoft. De project-SDK waarnaar in het vorige voorbeeld wordt verwezen, heeft de moniker Microsoft.NET.Sdk. De project-SDK's die zijn gekoppeld aan .NET Core en .NET 5 en hoger, worden vermeld in het overzicht van .NET Project SDK.
Verwijzen naar een project-SDK
Er zijn drie manieren om te verwijzen naar een project-SDK:
              Sdk Het kenmerk voor het Project element gebruiken
<Project Sdk="My.Custom.Sdk">
    ...
</Project>
Er wordt een impliciete import toegevoegd aan de boven- en onderkant van het project, zoals eerder is besproken.
Als u een specifieke versie van de SDK wilt opgeven, voegt u deze toe aan het Sdk kenmerk:
<Project Sdk="My.Custom.Sdk/1.2.3">
    ...
</Project>
Gebruik het element op het hoogste niveau Sdk
<Project>
    <Sdk Name="My.Custom.Sdk" Version="1.2.3" />
    ...
</Project>
Er wordt een impliciete import toegevoegd aan de boven- en onderkant van het project, zoals eerder is besproken.
Het Version kenmerk is niet vereist.
              Import Het element overal in uw project gebruiken
<Project>
    <PropertyGroup>
        <MyProperty>Value</MyProperty>
    </PropertyGroup>
    <Import Project="Sdk.props" Sdk="My.Custom.Sdk" />
    ...
    <Import Project="Sdk.targets" Sdk="My.Custom.Sdk" />
</Project>
Wanneer u de import in uw project expliciet opneemt, hebt u volledige controle over de bestelling.
Wanneer u het Import element gebruikt, kunt u ook een optioneel Version kenmerk opgeven. U kunt bijvoorbeeld opgeven <Import Project="Sdk.props" Sdk="My.Custom.Sdk" Version="1.2.3" />.
Waarschuwing
Als u uw project wijzigt om Import elementen te gebruiken, moet u zowel .props als .targets importbewerkingen toevoegen en de SDK verwijderen uit het Project element en de Sdk elementen. Als u dit niet doet, zullen er dubbele imports zijn en een MSB4011 waarschuwing.
Hoe project-SDK's worden bepaald
Bij het evalueren van de import wordt het pad naar de project-SDK dynamisch bepaald op basis van de naam en versie die u hebt opgegeven. MSBuild heeft ook een lijst met geregistreerde SDK-resolvers, die invoegtoepassingen zijn waarmee project-SDK's op uw computer worden gevonden. Deze invoegtoepassingen zijn onder andere:
Een op NuGet gebaseerde resolver die query's op uw geconfigureerde pakketfeeds opvraagt voor NuGet-pakketten die overeenkomen met de id en versie van de SDK die u hebt opgegeven.
Deze resolver is alleen actief als u een optionele versie hebt opgegeven. Deze kan worden gebruikt voor elke aangepaste project-SDK.
Een .NET SDK-resolver waarmee MSBuild SDK's worden omgezet die zijn geïnstalleerd met de .NET SDK.
Deze resolver zoekt project-SDK's zoals
Microsoft.NET.SdkenMicrosoft.NET.Sdk.Webdie deel uitmaken van het product.Een standaard resolver waarmee SDK's worden omgezet die zijn geïnstalleerd met MSBuild.
De op NuGet gebaseerde SDK-resolver ondersteunt het opgeven van een versie in het global.json-bestand , waarmee u de project-SDK-versie op één plaats kunt beheren in plaats van in elk afzonderlijk project:
{
    "msbuild-sdks": {
        "My.Custom.Sdk": "5.0.0",
        "My.Other.Sdk": "1.0.0-beta"
    }
}
Er kan slechts één versie van elke project-SDK worden gebruikt tijdens een build. Als u naar twee verschillende versies van dezelfde project-SDK verwijst, verzendt MSBuild een waarschuwing. U wordt aangeraden geen versie in uw projecten op te geven als er een versie is opgegeven in het global.json-bestand .