Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Amikor először hoz létre egy projektet, javasoljuk, hogy hozzon létre egy .NET Standard osztálytárat, mivel az kompatibilitást biztosít a legszűkebb mennyiségű projekttel. A .NET Standard használatával alapértelmezés szerint platformfüggetlen támogatást ad hozzá egy .NET-kódtárhoz. Bizonyos esetekben azonban előfordulhat, hogy egy adott keretrendszert célzó kódot is tartalmaznia kell. Ez a cikk bemutatja, hogyan teheti ezt SDK-stílusú projektekhez.
SDK-stílusú projektek esetén a projektfájlban több cél-keretrendszer (TFM) támogatását konfigurálhatja, majd használhatja dotnet pack vagy msbuild /t:pack létrehozhatja a csomagot.
Megjegyzés:
nuget.exe CLI nem támogatja az SDK-stílusú projektek csomagolását, ezért csak a dotnet pack vagy a msbuild /t:pack lehetőségeket használhatja. Javasoljuk, hogy a projektfájlban általában szereplő .nuspec a projektfájlba. Ha egy nem SDK-stílusú projektben több .NET-keretrendszer-verziót szeretne megcélzni, olvassa el a több .NET-keretrendszerverzió támogatásával kapcsolatos témakört.
Több .NET-keretrendszerverziót támogató projekt létrehozása
Hozzon létre egy új .NET Standard osztálytárat a Visual Studióban vagy használja
dotnet new classlib.Javasoljuk, hogy hozzon létre egy .NET Standard osztálykódtárat a legjobb kompatibilitás érdekében.
Szerkessze a .csproj fájlt a cél-keretrendszerek támogatásához. Például: módosítás
<TargetFramework>netstandard2.0</TargetFramework>to:
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>Győződjön meg arról, hogy az XML-elemet többes számról többesre módosította (adja hozzá az "s" elemet a nyitott és a záró címkékhez is).
Ha olyan kóddal rendelkezik, amely csak egy TFM-ben működik, használhatja
#if NET45vagy#if NETSTANDARD2_0elkülönítheti a TFM-függő kódot. (További információ: How to multitarget.) Használhatja például a következő kódot:public string Platform { get { #if NET45 return ".NET Framework" #elif NETSTANDARD2_0 return ".NET Standard" #else #error This code block does not match csproj TargetFrameworks list #endif } }Adjon hozzá minden NuGet-metaadatot, amelyet MSBuild tulajdonságként szeretne hozzáadni a .csprojhoz .
Az elérhető csomag metaadatainak és az MSBuild tulajdonságneveknek a listáját lásd: csomagcél. Lásd még: Függőségi eszközök szabályozása.
Ha el szeretné különíteni a buildel kapcsolatos tulajdonságokat a NuGet-metaadatoktól, használhat egy másikat
PropertyGroup, vagy elhelyezheti a NuGet-tulajdonságokat egy másik fájlban, és az MSBuild irányelvévelImportbelefoglalhatja azt.Directory.Build.PropsésDirectory.Build.Targetsaz MSBuild 15.0-val kezdődően is támogatottak.Most használja a
dotnet pack-t, és az eredményként kapott .nupkg célozza a .NET Standard 2.0-t és a .NET Framework 4.5-öt.
Itt található a .csproj fájl, amely az előző lépések és a .NET Core SDK 2.2 használatával jön létre.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
<Description>Sample project that targets multiple TFMs</Description>
</PropertyGroup>
</Project>