Ve formátu NuGet PackageReference může verze 4.0+ ukládat všechna metadata manifestu přímo do souboru projektu místo použití samostatného .nuspec souboru.
S MSBuild 15,1+ NuGet je také prvotřídní MSBuild občan s pack cíli a restore cíli, jak je popsáno níže. Tyto cíle umožňují pracovat stejně NuGet jako s jakýmkoli jiným MSBuild úkolem nebo cílem. Pokyny k NuGet vytvoření balíčku pomocí MSBuildnaleznete v tématu Vytvoření NuGet balíčku pomocí MSBuild. (Pro NuGet 3.x a starší, místo toho použijete příkazy balíčku a obnovení prostřednictvím rozhraní příkazového NuGet řádku.)
Pořadí sestavení cílů
Vzhledem k tomu pack , že jsou restore MSBuild cíle, můžete k nim přistupovat a vylepšit tak pracovní postup. Řekněme například, že chcete balíček po zabalení zkopírovat do sdílené síťové složky. Můžete to udělat tak, že do souboru projektu přidáte následující:
Podobně můžete napsat MSBuild úkol, napsat vlastní cíl a využívat NuGet vlastnosti v MSBuild úkolu.
Poznámka
$(OutputPath) je relativní a očekává, že příkaz spouštíte z kořenového adresáře projektu.
cíl balíčku
Pro projekty .NET, které používají PackageReference formát, pomocí nakreslí msbuild -t:pack vstupy ze souboru projektu, které se použijí při vytváření NuGet balíčku.
Následující tabulka popisuje MSBuild vlastnosti, které lze přidat do souboru projektu v rámci prvního <PropertyGroup> uzlu. Tyto úpravy můžete snadno provést v sadě Visual Studio 2017 a novějších kliknutím pravým tlačítkem myši na projekt a výběrem možnosti Upravit {project_name} v místní nabídce. Pro usnadnění je tabulka uspořádaná podle ekvivalentní vlastnosti v .nuspec souboru.
Poznámka
Owners a Summary vlastnosti z .nuspec nejsou podporovány s MSBuild.
Atribut nebonuspec hodnota
MSBuild Vlastnost
Výchozí
Notes
Id
PackageId
$(AssemblyName)
$(AssemblyName) od MSBuild
Version
PackageVersion
Verze
To je kompatibilní semver, například 1.0.0, 1.0.0-betanebo 1.0.0-beta-00345. Výchozí hodnota je Version , pokud není nastavená.
VersionPrefix
VersionPrefix
empty
Nastavení PackageVersion přepsání VersionPrefix
VersionSuffix
VersionSuffix
empty
Nastavení PackageVersion přepsání VersionSuffix
Authors
Authors
Uživatelské jméno aktuálního uživatele
Seznam autorů balíčků oddělený středníkem, který odpovídá názvům profilů v nuget.org. Ty se zobrazují v NuGet galerii v nuget.org a používají se k křížovému odkazu balíčků stejnými autory.
Owners
–
Není přítomno v nuspec
Title
Title
$(PackageId)
Popisný název balíčku, který se obvykle používá v uživatelském rozhraní, se zobrazuje jako nugetv .org a Správce balíčků v sadě Visual Studio.
Description
Description
"Popis balíčku"
Dlouhý popis sestavení. Pokud PackageDescription není zadána, tato vlastnost se také používá jako popis balíčku.
Copyright
Copyright
empty
Podrobnosti o autorských právech pro balíček.
RequireLicenseAcceptance
PackageRequireLicenseAcceptance
false
Logická hodnota, která určuje, zda klient musí před instalací balíčku vyzvat příjemce k přijetí licence balíčku.
Cesta k souboru licence v balíčku, pokud používáte vlastní licenci nebo licenci, která nemá přiřazený identifikátor SPDX. Musíte explicitně zabalit odkazovaný licenční soubor. <license type="file">Odpovídá . Viz Balení licenčního výrazu nebo licenčního souboru.
LicenseUrl
PackageLicenseUrl
empty
PackageLicenseUrl je zastaralý. Použijte PackageLicenseExpression nebo PackageLicenseFile místo toho.
ProjectUrl
PackageProjectUrl
empty
Icon
PackageIcon
empty
Cesta k obrázku v balíčku, která se má použít jako ikona balíčku. Musíte explicitně zabalit odkazovaný soubor obrázku ikony. Další informace naleznete v tématu Balení souboru obrázku ikony a icon metadata.
IconUrl
PackageIconUrl
empty
PackageIconUrl je zastaralá ve prospěch PackageIcon. Pro nejlepší nižší úroveň prostředí byste však měli kromě PackageIconUrlPackageIcon.
Readme
PackageReadmeFile
empty
Musíte explicitně zabalit odkazovaný soubor readme.
Tags
PackageTags
empty
Seznam značek oddělených středníkem, který označuje balíček.
ReleaseNotes
PackageReleaseNotes
empty
Poznámky k verzi balíčku
Repository/Url
RepositoryUrl
empty
Adresa URL úložiště používaná ke klonování nebo načítání zdrojového kódu. Příklad: https://github.com/NuGethttps://github.com/NuGet/NuGet.Client.git.
Repository/Type
RepositoryType
empty
Typ úložiště. Příklady: git (výchozí), tfs.
Repository/Branch
RepositoryBranch
empty
Volitelné informace o větvi úložiště RepositoryUrl musí být také zadána pro tuto vlastnost, která má být zahrnuta. Příklad: master (NuGet 4.7.0+).
Repository/Commit
RepositoryCommit
empty
Volitelné potvrzení úložiště nebo sada změn označující, pro který zdroj byl balíček sestaven. RepositoryUrl musí být také zadána pro tuto vlastnost, která má být zahrnuta. Příklad: 0e4d1b598f350b3dc675018d539114d1328189ef (NuGet 4.7.0+).
Označuje zamýšlené použití balíčku. Typy balíčků používají stejný formát jako ID balíčků a jsou oddělené .; Typy balíčků můžou být verzí pomocí připojení , a Version řetězce. Viz Nastavení NuGet typu balíčku (NuGet 3.5.0+).
Summary
Nepodporováno
cílové vstupy balíčku
Vlastnost
Popis
IsPackable
Logická hodnota, která určuje, zda lze projekt zabalit. Výchozí hodnota je true.
SuppressDependenciesWhenPacking
Nastavte na true potlačení závislostí balíčku z vygenerovaného NuGet balíčku.
PackageVersion
Určuje verzi, kterou bude mít výsledný balíček. Přijímá všechny formy NuGet řetězce verze. Výchozí hodnota je hodnota $(Version)vlastnosti Version v projektu.
PackageId
Určuje název výsledného balíčku. Pokud není zadáno, použije operace pack jako AssemblyName název balíčku výchozí název nebo název adresáře.
PackageDescription
Dlouhý popis balíčku pro zobrazení uživatelského rozhraní.
Authors
Seznam autorů balíčků oddělený středníkem, který odpovídá názvům profilů v nuget.org. Ty se zobrazují v NuGet galerii v nuget.org a používají se k křížovému odkazu balíčků stejnými autory.
Description
Dlouhý popis sestavení. Pokud PackageDescription není zadána, tato vlastnost se také používá jako popis balíčku.
Copyright
Podrobnosti o autorských právech pro balíček.
PackageRequireLicenseAcceptance
Logická hodnota, která určuje, zda klient musí před instalací balíčku vyzvat příjemce k přijetí licence balíčku. Výchozí hodnota je false.
DevelopmentDependency
Logická hodnota, která určuje, jestli je balíček označen jako závislost určená jen pro vývoj, což brání zahrnutí balíčku jako závislosti v jiných balíčcích. U PackageReference (NuGet 4.8+) tento příznak také znamená, že prostředky kompilace jsou vyloučené z kompilace. Další informace naleznete v tématu DevelopmentDependency support for PackageReference.
PackageLicenseExpression
Identifikátor licence SPDX nebo výraz, Apache-2.0například . Další informace naleznete v tématu Balení výrazu licence nebo souboru licence.
PackageLicenseFile
Cesta k souboru licence v balíčku, pokud používáte vlastní licenci nebo licenci, která nemá přiřazený identifikátor SPDX.
PackageLicenseUrl
PackageLicenseUrl je zastaralý. Použijte PackageLicenseExpression nebo PackageLicenseFile místo toho.
PackageProjectUrl
PackageIcon
Určuje cestu ikony balíčku vzhledem ke kořenovému adresáři balíčku. Další informace naleznete v tématu Balení souboru obrázku ikony.
PackageReleaseNotes
Poznámky k verzi balíčku
PackageReadmeFile
Readme pro balíček.
PackageTags
Seznam značek oddělených středníkem, který označuje balíček.
PackageOutputPath
Určuje výstupní cestu, ve které se zabalený balíček zahodí. Výchozí hodnota je $(OutputPath).
IncludeSymbols
Tato logická hodnota označuje, jestli má balíček při zabalení projektu vytvořit další balíček symbolů. Formát balíčku symbolů je řízen SymbolPackageFormat vlastností. Další informace naleznete v tématu IncludeSymbols.
IncludeSource
Tato logická hodnota označuje, jestli má proces balíčku vytvořit zdrojový balíček. Zdrojový balíček obsahuje zdrojový kód knihovny i soubory PDB. Zdrojové soubory se umístí do src/ProjectName adresáře do výsledného souboru balíčku. Další informace naleznete v tématu IncludeSource.
PackageType
IsTool
Určuje, jestli se všechny výstupní soubory zkopírují do složky nástrojů místo do složky lib . Další informace naleznete v tématu IsTool.
RepositoryUrl
Adresa URL úložiště používaná ke klonování nebo načítání zdrojového kódu. Příklad: https://github.com/NuGethttps://github.com/NuGet/NuGet.Client.git.
RepositoryType
Typ úložiště. Příklady: git (výchozí), tfs.
RepositoryBranch
Volitelné informace o větvi úložiště RepositoryUrl musí být také zadána pro tuto vlastnost, která má být zahrnuta. Příklad: master (NuGet 4.7.0+).
RepositoryCommit
Volitelné potvrzení úložiště nebo sada změn označující, pro který zdroj byl balíček sestaven. RepositoryUrl musí být také zadána pro tuto vlastnost, která má být zahrnuta. Příklad: 0e4d1b598f350b3dc675018d539114d1328189ef (NuGet 4.7.0+).
SymbolPackageFormat
Určuje formát balíčku symbolů. Pokud "symbols.nupkg", vytvoří se starší balíček symbolů s příponou .symbols.nupkg obsahující soubory PDB, knihovny DLL a další výstupní soubory. Pokud "snupkg", vytvoří se balíček symbolů snupkg obsahující přenosné soubory PDB. Výchozí hodnota je symbols.nupkg.
NoPackageAnalysis
Určuje, že pack se po sestavení balíčku nespustí analýza balíčku.
MinClientVersion
Určuje minimální verzi NuGet klienta, která může nainstalovat tento balíček vynucený .exe nugeta Správce balíčků sady Visual Studio.
IncludeBuildOutput
Tato logická hodnota určuje, zda mají být výstupní sestavení sestavení zabalena do souboru .nupkg , nebo ne.
IncludeContentInPack
Tato logická hodnota určuje, zda jsou všechny položky, které mají typ Content , zahrnuty do výsledného balíčku automaticky. Výchozí hodnota je true.
BuildOutputTargetFolder
Určuje složku, kam se mají umístit výstupní sestavení. Výstupní sestavení (a další výstupní soubory) se zkopírují do příslušných složek architektury. Další informace naleznete v tématu Výstupní sestavení.
ContentTargetFolders
Určuje výchozí umístění, kam mají všechny soubory obsahu přejít, pokud PackagePath pro ně nejsou zadané. Výchozí hodnota je "content; contentFiles". Další informace naleznete v tématu Zahrnutí obsahu do balíčku.
NuspecFile
Relativní nebo absolutní cesta k souboru použitému .nuspec k balení. Pokud je zadáno, používá se výhradně pro balení informací a všechny informace v projektech se nepoužívají. Další informace naleznete v tématu Balení pomocí ..nuspec
NuspecBasePath
Základní cesta k .nuspec souboru. Další informace naleznete v tématu Balení pomocí ..nuspec
NuspecProperties
Středník oddělený seznam párů klíč=hodnota Další informace naleznete v tématu Balení pomocí ..nuspec
Scénáře balíčků
Potlačení závislostí
Pokud chcete potlačit závislosti balíčku z vygenerovaného NuGet balíčku, nastavte SuppressDependenciesWhenPacking na to, aby true bylo možné přeskočit všechny závislosti ze vygenerovaného souboru nupkg.
PackageIconUrl
PackageIconUrl je zastaralá ve prospěch nemovitosti PackageIcon . NuGet Počínaje verzí 5.3 a sadou Visual Studio 2019 verze 16.3 vyvolá upozornění NU5048, pack pokud metadata balíčku pouze specifikují PackageIconUrl.
PackageIcon
Tip
Chcete-li zachovat zpětnou kompatibilitu s klienty a zdroji, které ještě nepodporují PackageIcon, zadejte oba PackageIcon a PackageIconUrl. Visual Studio podporuje PackageIcon balíčky pocházející ze zdroje založeného na složce.
Balení souboru obrázku ikony
Při balení souboru obrázku ikony použijte PackageIcon vlastnost k určení cesty k souboru ikony vzhledem ke kořenovému adresáři balíčku. Kromě toho se ujistěte, že je soubor součástí balíčku. Velikost souboru obrázku je omezená na 1 MB. Mezi podporované formáty souborů patří JPEG a PNG. Doporučujeme rozlišení obrázku 128x128.
V případě ekvivalentu nuspec se podívejte na nuspec ikonu odkazu.
PackageReadmeFile
Podporováno ve verzi NuGet 5.10.0 Preview 2.NET / SDK 5.0.300 a vyšší
Při balení souboru readme je nutné použít PackageReadmeFile vlastnost k určení cesty balíčku vzhledem ke kořenovému adresáři balíčku. Kromě toho je potřeba zajistit, aby byl soubor součástí balíčku. Podporované formáty souborů zahrnují pouze Markdown (.md).
nuget packzkopíruje výstupní soubory s příponou .exe, , .dll.xml, .winmd.jsona .pri. Výstupní soubory, které se zkopírují, závisí na tom, co MSBuild poskytuje cíl BuiltOutputProjectGroup .
V souboru projektu nebo příkazovém řádku můžete použít dvě MSBuild vlastnosti, které určují, kam výstupní sestavení patří:
IncludeBuildOutput: Logická hodnota, která určuje, zda mají být výstupní sestavení sestavení zahrnuta do balíčku.
BuildOutputTargetFolder: Určuje složku, do které se mají umístit výstupní sestavení. Výstupní sestavení (a další výstupní soubory) se zkopírují do příslušných složek architektury.
Do odkazu na projekt můžete přidat také následující metadata:
<IncludeAssets>
<ExcludeAssets>
<PrivateAssets>
Zahrnutí obsahu do balíčku
Pokud chcete zahrnout obsah, přidejte k existující <Content> položce další metadata. Ve výchozím nastavení se veškerý typ "Obsah" zahrne do balíčku, pokud nepřepíšete položky jako následující:
Ve výchozím nastavení se všechno přidá do kořenového content adresáře a contentFiles\any\<target_framework> složky v rámci balíčku a zachová relativní strukturu složek, pokud nezadáte cestu k balíčku:
Pokud chcete zkopírovat veškerý obsah pouze do konkrétních kořenových složek (místo content obojího contentFiles ), můžete použít MSBuild vlastnost ContentTargetFolders, která ve výchozím nastavení "obsah; contentFiles" ale lze nastavit na jakékoli jiné názvy složek. Všimněte si, že stačí zadat "contentFiles" do ContentTargetFolders souborů nebo contentFiles\<language>\<target_framework>contentFiles\any\<target_framework> na základě nich buildAction.
PackagePath může být středník oddělená sadou cílových cest. Zadáním prázdné cesty balíčku by se soubor přidal do kořenového adresáře balíčku. Například následující přidá libuv.txt do content\myfilessouboru , content\samplesa kořen balíčku:
K dispozici je také MSBuild vlastnost $(IncludeContentInPack), která ve výchozím nastavení true. Pokud je tato možnost nastavena na false libovolný projekt, obsah z tohoto projektu není součástí nuget balíčku.
Další metadata specifická pro balíček, která můžete nastavit pro kteroukoli z výše uvedených položek, a <PackageCopyToOutput><PackageFlatten> které nastaví CopyToOutput a Flatten hodnoty contentFiles položky ve výstupu nuspec.
Poznámka
Kromě položek <Pack> obsahu lze také nastavit metadata a <PackagePath> soubory pomocí akce sestavení Compile, EmbeddedResource, ApplicationDefinition, Page, Resource, SplashScreen, DesignData, DesignData, DesignDataWithDesignTimeCreateableTypes, CodeAnalysisDictionary, AndroidAsset, AndroidResource, BundleResource nebo None.
Aby balíček při použití vzorů globbingu připojil název souboru k cestě balíčku, musí cesta balíčku končit znakem oddělovače složek, jinak se cesta balíčku považuje za úplnou cestu včetně názvu souboru.
IncludeSymbols
Při použití MSBuild -t:pack -p:IncludeSymbols=truese odpovídající .pdb soubory zkopírují spolu s dalšími výstupními soubory (.dll, .exe, .winmd, .xml, , .json). .pri Všimněte si, že nastavení IncludeSymbols=true vytvoří běžný balíček a balíček symbolů.
IncludeSource
To je stejné jako IncludeSymbols, s tím rozdílem, že kopíruje zdrojové soubory spolu se .pdb soubory také. Všechny soubory typu Compile se zkopírují za účelem src\<ProjectName>\ zachování struktury složky relativní cesty ve výsledném balíčku. Totéž platí také pro zdrojové soubory všech ProjectReference , které jsou nastaveny TreatAsPackageReference na false.
Pokud je soubor typu Kompilace, je mimo složku projektu, je právě přidán do src\<ProjectName>\.
Balení licenčního výrazu nebo licenčního souboru
Při použití licenčního výrazu PackageLicenseExpression použijte vlastnost. Ukázku najdete v ukázce výrazu licence.
Další informace o licenčních výrazech a licencích, NuGetkteré přijímá .org, najdete v metadatech licencí.
Při balení licenčního souboru použijte PackageLicenseFile vlastnost k určení cesty k balíčku vzhledem ke kořenovému adresáři balíčku. Kromě toho se ujistěte, že je soubor součástí balíčku. Příklad:
Pouze jeden z PackageLicenseExpression, PackageLicenseFilea PackageLicenseUrl lze zadat najednou.
Balení souboru bez přípony
V některých scénářích, například při balení licenčního souboru, můžete chtít zahrnout soubor bez přípony.
Z historických důvodů NuGet a MSBuild zacházíme s cestami bez rozšíření jako adresářů.
Při použití MSBuild -t:pack -p:IsTool=true, všechny výstupní soubory, jak je uvedeno ve scénáři výstupní sestavení , se zkopírují do tools složky místo lib složky. Všimněte si, že se liší od toho DotNetCliTool , který je určen nastavením PackageType v .csproj souboru.
Balení pomocí .nuspec souboru
I když se doporučuje zahrnout všechny vlastnosti , které jsou obvykle v .nuspec souboru v souboru projektu, můžete se rozhodnout použít .nuspec soubor k zabalení projektu. Pro projekt, který nepoužívá sadu SDK, který používá PackageReference, je nutné importovat NuGet.Build.Tasks.Pack.targets , aby bylo možné spustit úlohu balíčku. Než budete moct zabalit nuspec soubor, musíte projekt obnovit. (Projekt ve stylu sady SDK obsahuje cíle balíčku ve výchozím nastavení.)
Cílová architektura souboru projektu je irelevantní a nepoužívá se při balení nuspec. Následující tři MSBuild vlastnosti jsou relevantní pro balení pomocí .nuspec:
NuspecFile: relativní nebo absolutní cesta k souboru používanému .nuspec k balení.
NuspecProperties: středník oddělený seznam párů klíč=hodnota. Vzhledem ke způsobu, jakým MSBuild funguje analýza příkazového řádku, musí být zadáno více vlastností takto: -p:NuspecProperties="key1=value1;key2=value2".
NuspecBasePath: Základní cesta k .nuspec souboru.
Pokud k zabalení projektu používáte dotnet.exe příkaz podobný tomuto:
dotnet pack <path to .csproj file> -p:NuspecFile=<path to nuspec file> -p:NuspecProperties=<> -p:NuspecBasePath=<Base path>
Pokud k zabalení projektu používáte MSBuild příkaz podobný tomuto:
msbuild -t:pack <path to .csproj file> -p:NuspecFile=<path to nuspec file> -p:NuspecProperties=<> -p:NuspecBasePath=<Base path>
Upozorňujeme, že balení nuspec pomocí dotnet.exe nebo msbuild také vede k sestavení projektu ve výchozím nastavení. Můžete se tomu vyhnout předáním --no-build vlastnosti do dotnet.exe, což je ekvivalent nastavení <NoBuild>true</NoBuild> v souboru projektu spolu s nastavením <IncludeBuildOutput>false</IncludeBuildOutput> v souboru projektu.
Příkladem souboru .csproj pro zabalení nuspec souboru je:
Pokročilé body rozšíření pro vytvoření přizpůsobeného balíčku
Cíl pack poskytuje dva body rozšíření, které běží ve vnitřním sestavení specifickém pro cílovou architekturu. Body rozšíření podporují, včetně obsahu a sestavení specifického pro cílovou architekturu do balíčku:
TargetsForTfmSpecificBuildOutput target: Slouží pro soubory uvnitř lib složky nebo složky zadané pomocí BuildOutputTargetFolder.
TargetsForTfmSpecificContentInPackagetarget: Používá se pro soubory mimo .BuildOutputTargetFolder
TargetsForTfmSpecificBuildOutput
Napište vlastní cíl a zadejte ho $(TargetsForTfmSpecificBuildOutput) jako hodnotu vlastnosti. Pro všechny soubory, které potřebují přejít do BuildOutputTargetFolder knihovny (lib ve výchozím nastavení), by měl cíl tyto soubory zapsat do skupiny ItemGroup BuildOutputInPackage a nastavit následující dvě hodnoty metadat:
FinalOutputPath: Absolutní cesta k souboru; Pokud není k dispozici, použije se identita k vyhodnocení zdrojové cesty.
TargetPath: (Volitelné) Nastavte, když soubor musí přejít do podsložky v rámci lib\<TargetFramework> , jako jsou satelitní sestavení, která procházejí pod příslušnými složkami jazykové verze. Výchozí hodnota je název souboru.
Napište vlastní cíl a zadejte ho $(TargetsForTfmSpecificContentInPackage) jako hodnotu vlastnosti. Aby se do balíčku zahrnuly všechny soubory, měl by cíl tyto soubory zapsat do skupiny ItemGroup TfmSpecificPackageFile a nastavit následující volitelná metadata:
PackagePath: Cesta, kde má být soubor výstupem v balíčku. NuGet zobrazí upozornění, pokud je do stejné cesty balíčku přidáno více souborů.
BuildAction: Akce sestavení, která se má přiřadit k souboru, je nutná pouze v případě, že je cesta k balíčku ve contentFiles složce. Výchozí hodnota je Žádná.
MSBuild -t:restore (které nuget restore a dotnet restore používá se projekty .NET Core), obnoví balíčky odkazované v souboru projektu následujícím způsobem:
Čtení všech odkazů na projekt
Čtení vlastností projektu a vyhledání zprostředkující složky a cílových architektur
Předat MSBuild data do NuGet. Build.Tasks.dll
Spuštění obnovení
Stažení balíčků
Zápis souboru, cílů a bodů prostředků
Cíl restore funguje pro projekty ve formátu PackageReference.
MSBuild 16.5+má také podporu výslovného souhlasu s formátempackages.config.
Další nastavení obnovení můžou pocházet z MSBuild vlastností v souboru projektu. Hodnoty lze také nastavit z příkazového -p: řádku pomocí přepínače (viz příklady níže).
Pokud je true, ignoruje selhávající nebo chybějící zdroje balíčků.
RestoreFallbackFolders
Náhradní složky, které se používají stejným způsobem jako složka balíčků uživatelů.
RestoreAdditionalProjectSources
Další zdroje, které se mají použít během obnovení.
RestoreAdditionalProjectFallbackFolders
Další záložní složky, které se mají použít během obnovení.
RestoreAdditionalProjectFallbackFoldersExcludes
Vyloučení náhradních složek zadaných v RestoreAdditionalProjectFallbackFolders
RestoreTaskAssemblyFile
Cesta k NuGet.Build.Tasks.dll.
RestoreGraphProjectInput
Seznam projektů oddělených středníkem, které mají být obnoveny, které by měly obsahovat absolutní cesty.
RestoreUseSkipNonexistentTargets
Když se projekty shromažďují prostřednictvím MSBuild něj, určuje, jestli se shromažďují pomocí SkipNonexistentTargets optimalizace. Pokud není nastaveno, použije se výchozí hodnota true. Výsledkem je rychlé chování při selhání, pokud cíle projektu nelze importovat.
MSBuildProjectExtensionsPath
Výstupní složka, výchozí hodnota BaseIntermediateOutputPath složky a obj složka.
RestoreForce
V projektech založených na PackageReference vynutí vyřešení všech závislostí, i když bylo poslední obnovení úspěšné. Určení tohoto příznaku project.assets.json je podobné odstranění souboru. Tím nedojde k obejití mezipaměti http-cache.
RestorePackagesWithLockFile
Přihlásí se k používání zamykacího souboru.
RestoreLockedMode
Spusťte obnovení v uzamčeném režimu. To znamená, že obnovení znovu nevyhodnotí závislosti.
NuGetLockFilePath
Vlastní umístění souboru zámku. Výchozí umístění je vedle projektu a má název packages.lock.json.
RestoreForceEvaluate
Vynutí obnovení, aby znovu zkompilovat závislosti a aktualizoval soubor zámku bez upozornění.
RestorePackagesConfig
Přepínač výslovného souhlasu, který obnoví projekty pomocí packages.config. Podpora pouze s MSBuild -t:restore .
RestoreRepositoryPath
packages.config. Určuje adresář balíčků, do kterého se mají balíčky obnovit. SolutionDirectory bude použita, pokud není zadána.
RestoreUseStaticGraphEvaluation
Přepínač výslovného souhlasu, který místo standardního vyhodnocení používá vyhodnocení statického grafu MSBuild . Vyhodnocení statického grafu je experimentální funkce, která je výrazně rychlejší pro velká úložiště a řešení.
RestoreUseLegacyDependencyResolver
Výslovný nesouhlas s používáním starší verze překladače závislostí. NuGetImplementace překladače závislostí byla přepsána ve verzi 6.12. Tento přepínač vynutí použití předchozího algoritmu.
Vlastnost ExcludeRestorePackageImports je interní vlastnost, kterou NuGetpoužívá .
Nemělo by být změněno ani nastaveno v žádných MSBuild souborech.
Vzhledem k tomu, že lze obnovit balíčky, NuGet které spouštějí MSBuild cíle a props, se spustí vyhodnocení obnovení a sestavení s různými globálními vlastnostmi.
To znamená, že následující chování bude mít nepředvídatelné a často nesprávné chování.
msbuild -t:restore,build
Místo toho doporučujeme:
msbuild -t:build -restore
Stejná logika se vztahuje na jiné cíle podobné build.
Obnovení projektů PackageReference a packages.config pomocí MSBuild
S verzemi MSBuild 16.5+ jsou podporovány msbuild -t:restoretaké packages.config .
msbuild -t:restore -p:RestorePackagesConfig=true
Poznámka
packages.config obnovení je k dispozici pouze s MSBuild 16.5+, a ne s dotnet.exe
Obnovení pomocí vyhodnocení statického MSBuild grafu
Poznámka
Ve MSBuild verzi 16.6+ byla přidána experimentální funkce pro použití vyhodnocení statického grafu z příkazového řádku, NuGet která výrazně zlepšuje dobu obnovení velkých úložišť.
Od sady Visual Studio 2019.x a NuGet 5.x se tato funkce považuje za experimentální a opt-in. Podrobnosti o tom, kdy bude tato funkce ve výchozím nastavení povolená, najdete v NuGetsouboru /Home#9803 .
Statické obnovení grafu změní msbuild část obnovení, čtení a vyhodnocení projektu, ale ne algoritmus obnovení. Algoritmus obnovení je stejný ve všech NuGet nástrojích (NuGet.exe, MSBuild.exe, dotnet.exe a Visual Studio).
Ve velmi několika scénářích se statické obnovení grafu může chovat jinak než aktuální obnovení a některé deklarované PackageReferences nebo ProjectReferences můžou chybět.
Při jednorázové kontrole při migraci na statické obnovení grafu zvažte spuštění:
NuGetby neměly hlásit žádné změny. Pokud se zobrazí nesrovnalosti, zapište problém na NuGetadrese /Home.
Nahrazení jedné knihovny z grafu obnovení
Pokud obnovení přináší nesprávné sestavení, je možné vyloučit výchozí volbu balíčků a nahradit ho vlastní volbou. Nejprve s nejvyšší úrovní PackageReferencevylučte všechny prostředky:
Vytvoříte projekt .NET a dozvíte se, jak přidávat balíčky a spravovat jejich závislosti v daném projektu. Použijete .NET Core CLI a registr NuGet a přidáte do aplikací v C# knihovny a nástroje pomocí nástroje Visual Studio Code.