Vynechání balíčků NuGet v systémech správy zdrojového kódu
Vývojáři obvykle vynechají balíčky NuGet ze svých úložišť správy zdrojového kódu a spoléhají místo toho na obnovení balíčku, aby před sestavením přeinstalovali závislosti projektu.
Mezi důvody, proč se spoléhat na obnovení balíčku, patří:
- Distribuované systémy správy verzí, jako je Git, zahrnují úplné kopie každé verze každého souboru v úložišti. Binární soubory, které se často aktualizují, vedou k významnému bloudu a prodlužují dobu potřebnou ke klonování úložiště.
- Pokud jsou balíčky zahrnuté v úložišti, mohou vývojáři přidávat odkazy přímo na obsah balíčku na disku místo odkazování na balíčky prostřednictvím NuGetu, což může vést k pevně zakódovaným názvům cest v projektu.
- Je obtížnější vyčistit řešení všech nepoužívaných složek balíčků, protože potřebujete zajistit, abyste neodstranili žádné složky balíčků, které se stále používají.
- Vynecháním balíčků zachováte čisté hranice vlastnictví mezi kódem a balíčky od ostatních, na které závisíte. Mnoho balíčků NuGet se udržuje ve svých vlastních úložištích správy zdrojového kódu.
I když je obnovení balíčku výchozím chováním nuGetu, je nutné některé ruční práce vynechat balíčky – konkrétně packages
složku v projektu – ze správy zdrojového kódu, jak je popsáno v tomto článku.
Vynechání balíčků pomocí Gitu
Pomocí souboru .gitignore ignorujte balíčky NuGet (.nupkg
) packages
složku a project.assets.json
mimo jiné. Referenční informace najdete v ukázce .gitignore
projektů sady Visual Studio:
Důležité části .gitignore
souboru jsou:
# Ignore NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Ignore other intermediate files that NuGet might create. project.lock.json is used in conjunction
# with project.json (NuGet v3); project.assets.json is used in conjunction with the PackageReference
# format (NuGet v4 and .NET Core).
project.lock.json
project.assets.json
Vynechání balíčků pomocí Správa verzí Team Foundation
Poznámka:
Pokud je to možné , před přidáním projektu do správy zdrojového kódu postupujte podle těchto pokynů. Jinak ručně odstraňte packages
složku z úložiště a před pokračováním se změnami změny se změnami.
Zakázání integrace správy zdrojového kódu s TFVC pro vybrané soubory:
Ve složce řešení vytvořte složku s názvem
.nuget
(kde.sln
je soubor).- Tip: Pokud chcete ve Windows vytvořit tuto složku v Průzkumníku Windows, použijte název
.nuget.
s koncovou tečkou.
- Tip: Pokud chcete ve Windows vytvořit tuto složku v Průzkumníku Windows, použijte název
V této složce vytvořte soubor s názvem
NuGet.Config
a otevřete ho pro úpravy.Přidejte následující text jako minimum, kde nastavení disableSourceControlIntegration dává sadě Visual Studio pokyn, aby přeskočí všechno ve
packages
složce:<?xml version="1.0" encoding="utf-8"?> <configuration> <solution> <add key="disableSourceControlIntegration" value="true" /> </solution> </configuration>
Pokud používáte TFS 2010 nebo starší, zakryjte
packages
složku do mapování pracovních prostorů.V TFS 2012 nebo novějším nebo v sadě Visual Studio Team Services vytvořte
.tfignore
soubor, jak je popsáno v části Přidat soubory na server. Do tohoto souboru zahrňte níže uvedený obsah, abyste explicitně ignorovali úpravy\packages
složky na úrovni úložiště a několik dalších zprostředkujících souborů. (Soubor můžete vytvořit v Průzkumníku Windows pomocí názvu s koncovou tečkou.tfignore.
, ale možná budete muset nejdřív zakázat možnost Skrýt známé přípony souborů.):# Ignore NuGet Packages *.nupkg # Ignore the NuGet packages folder in the root of the repository. If needed, prefix 'packages' # with additional folder names if it's not in the same folder as .tfignore. packages # Omit temporary files project.lock.json project.assets.json *.nuget.props
Přidejte
NuGet.Config
do správy zdrojového kódu a.tfignore
zkontrolujte změny.