NuGet – nejčastější dotazyNuGet frequently-asked questions

Co je potřeba spuštěním rozšíření NuGet?What is required to run NuGet?

Všechny informace týkající se uživatelského rozhraní a nástroje příkazového řádku jsou k dispozici v Instalační příručka.All the information around both UI and command-line tools is available in the Install guide.

Podporuje NuGet Mono?Does NuGet support Mono?

Nástroj příkazového řádku nuget.exe, sestavení a běží pod Mono 3.2 + a můžete vytvořit balíčky v Mono.The command-line tool, nuget.exe, builds and runs under Mono 3.2+ and can create packages in Mono.

I když nuget.exe funguje plně na Windows, dochází ke známým problémům v Linuxu a OS X. naleznete Mono vydá na Githubu.Although nuget.exe works fully on Windows, there are known issues on Linux and OS X. Refer to Mono issues on GitHub.

A grafický klient je k dispozici jako doplněk pro MonoDevelop.A graphical client is available as an add-in for MonoDevelop.

Jak zjistím obsah balíčku a zda je stabilní a užitečné pro mé aplikace?How can I determine what a package contains and whether it's stable and useful for my application?

Primární zdroj informací o balíčku je její stránce na nuget.org (nebo jiný privátní kanál).The primary source for learning about a package is its listing page on nuget.org (or another private feed). Každou stránku balíčků na nuget.org obsahuje popis balíčku, historie verzí a statistiky o využití.Each package page on nuget.org includes a description of the package, its version history, and usage statistics. Informace oddíl na stránce balíček pro také obsahuje odkaz projekt webové stránky, kdy obvykle najít mnoho příkladů a další dokumentaci, která vám pomůže se naučit, jak se používá balíček.The Info section on the package page also contains a link to the project's web site where you typically find many examples and other documentation to help you learn how the package is used.

Další informace najdete v tématu hledání a výběr balíčků.For more information, see Finding and choosing packages.

NuGet v sadě Visual StudioNuGet in Visual Studio

Jak se v různých produktů Visual Studio podporuje NuGet?How is NuGet supported in different Visual Studio products?

Jak můžu ověřit přesnou verzi, které jsou nainstalované nástroje NuGet?How do I check the exact version of the NuGet tools that are installed?

V sadě Visual Studio, použijte Nápověda > o Microsoft Visual Studio příkazů a podívejte se na verzi vedle položky Správce balíčků NuGet.In Visual Studio, use the Help > About Microsoft Visual Studio command and look at the version displayed next to NuGet Package Manager.

Alternativně spusťte konzolu Správce balíčků (nástroje > Správce balíčků NuGet > Konzola správce balíčků) a zadejte $host zobrazíte informace o systému NuGet, včetně verze.Alternatively, launch the Package Manager Console (Tools > NuGet Package Manager > Package Manager Console) and enter $host to see information about NuGet including the version.

Jaké programovací jazyky podporují NuGet?What programming languages are supported by NuGet?

NuGet obecně se dá použít pro jazyky .NET a je určený pro přenesení do projektu knihovny .NET.NuGet generally works for .NET languages and is designed to bring .NET libraries into a project. Vzhledem k tomu, že v některých typech projektů podporuje také automatizaci MSBuild a sadě Visual Studio, podporuje také dalších projektů a jazyky na různých úrovních.Because it also supports MSBuild and Visual Studio automation in some project types, it also supports other projects and languages to various degrees.

Podporuje nejnovější verzi balíčku nuget C#, Visual Basic, F#, WiX a C++.The most recent version of NuGet supports C#, Visual Basic, F#, WiX, and C++.

Jaké šablony projektů podporuje NuGet?What project templates are supported by NuGet?

NuGet má plnou podporu pro širokou škálu šablony projektu, jako je Windows, Web, Cloud, SharePoint, Wix a tak dále.NuGet has full support for a variety of project templates like Windows, Web, Cloud, SharePoint, Wix, and so on.

Jak můžu aktualizovat balíčky, které jsou součástí šablony sady Visual Studio?How do I update packages that are part of Visual Studio templates?

Přejděte na aktualizace kartu v Uživatelském rozhraní Správce balíčků a vyberte Aktualizovat vše, nebo použijte Update-Package příkaz z konzoly Správce balíčků.Go to the Updates tab in the Package Manager UI and select Update All, or use the Update-Package command from the Package Manager Console.

Pokud chcete aktualizovat samotné šablony, budete muset ručně aktualizovat úložiště šablon.To update the template itself, you need to manually update the template repository. Zobrazit Xavier Decoster blogu k tomuto tématu.See Xavier Decoster's blog on this subject. Protože ruční aktualizace může dojít k poškození šablony Pokud nejnovější verze všechny závislosti nejsou navzájem kompatibilní, mějte na paměti, že to se provádí na vaše vlastní nebezpečí.Note that this is done at your own risk, because manual updates might corrupt the template if the latest version of all dependencies are not compatible with each other.

Můžete použít balíček NuGet mimo sadu Visual Studio?Can I use NuGet outside of Visual Studio?

Ano, NuGet pracuje přímo z příkazového řádku.Yes, NuGet works directly from the command line. Zobrazit Instalační příručka a odkaz na rozhraní příkazového řádku.See the Install guide and the CLI reference.

NuGet příkazového řádkuNuGet command line

Jak získat nejnovější verzi nástroje příkazového řádku NuGet?How do I get the latest version of NuGet command line tool?

Zobrazit Instalační příručka.See the Install guide.

Co je licence pro nuget.exe?What is the license for nuget.exe?

Jste oprávněni nuget.exe podle podmínek licence MIT znovu distribuovat.You are allowed to redistribute nuget.exe under the terms of the MIT license. Zodpovídáte za aktualizace a údržba všechny kopie nuget.exe, které chcete znovu distribuovat.You are responsible for updating and servicing any copies of nuget.exe that you choose to redistribute.

Je možné rozšířit nástroje příkazového řádku NuGet?Is it possible to extend the NuGet command line tool?

Ano, je možné přidat vlastní příkazy nuget.exe, jak je popsáno v Rob Reynold příspěvek.Yes, it's possible to add custom commands to nuget.exe, as described in Rob Reynold's post.

Konzola správce balíčků NuGet (Visual Studio na Windows)NuGet Package Manager Console (Visual Studio on Windows)

Jak získat přístup k objektu DTE v konzole Správce balíčkůHow do I get access to the DTE object in the Package Manager console?

Objekt nejvyšší úrovně v objektovém modelu automatizace sady Visual Studio se nazývá objekt DTE (Development Tools Environment).The top-level object in the Visual Studio automation object model is called the DTE (Development Tools Environment) object. Konzole vám tohle všechno poskytuje prostřednictvím proměnné s názvem $DTE.The console provides this through a variable named $DTE. Další informace najdete v tématu přehled modelu automatizace v dokumentaci k rozšiřitelnosti sady Visual Studio.For more information, see Automation Model Overview in the Visual Studio Extensibility documentation.

Můžu zkusit přetypovat $DTE proměnnou typu DTE2, ale se zobrazí chyba: nelze převést hodnotu "EnvDTE.DTEClass" typu "EnvDTE.DTEClass" typ "EnvDTE80.DTE2". Co je?I try to cast the $DTE variable to the type DTE2, but I get an error: Cannot convert the "EnvDTE.DTEClass" value of type "EnvDTE.DTEClass" to type "EnvDTE80.DTE2". What's wrong?

Jde o známý problém s interakci Powershellu pomocí objektu COM.This is a known issue with how PowerShell interacts with a COM object. Vyzkoušejte následující postup:Try the following:

`$dte2 = Get-Interface $dte ([EnvDTE80.DTE2])`

Get-Interface pomocná funkce přidal hostitele prostředí NuGet PowerShell.Get-Interface is a helper function added by the NuGet PowerShell host.

Vytvoření a publikování balíčkůCreating and publishing packages

Jak se seznam Můj balíček v informačním kanálu?How do I list my package in a feed?

Zobrazit vytváření a publikování balíčku.See Creating and publishing a package.

Mám k dispozici více verzí knihovny, které cílí různé verze rozhraní .NET Framework. Jak vytvořit jeden balíček, který to podporuje?I have multiple versions of my library that target different versions of the .NET Framework. How do I build a single package that supports this?

Zobrazit podporuje více verzí rozhraní .NET Framework a profily.See Supporting Multiple .NET Framework Versions and Profiles.

Nastavení vlastní úložiště nebo informačního kanáluHow do I set up my own repository or feed?

Zobrazit hostování balíčků přehled.See the Hosting packages overview.

Jak můžete nahrát balíčky do mé NuGet kanálu hromadně?How can I upload packages to my NuGet feed in bulk?

Zobrazit hromadně publikování balíčků NuGet (jeffhandly.com).See Bulk publishing NuGet packages (jeffhandly.com).

Práce s balíčkyWorking with packages

Jaký je rozdíl mezi balíčkem na úrovni projektu a balíček řešení úrovni?What is the difference between a project-level package and a solution-level package?

Balíček řešení úrovni (NuGet 3.x+) se nainstaluje pouze jednou v řešení a je pak k dispozici pro všechny projekty v řešení.A solution-level package (NuGet 3.x+) is installed only once in a solution and is then available for all projects in the solution. Na úrovni projektu balíček je nainstalován v každém projektu, která ji používá.A project-level package is installed in each project that uses it. Balíček úrovni řešení může být také nainstalovat nové příkazy, které může být volána z konzoly Správce balíčků.A solution-level package might also install new commands that can be called from within the Package Manager Console.

Je možné nainstalovat balíčky NuGet bez připojení k Internetu?Is it possible to install NuGet packages without Internet connectivity?

Ano, najdete v příspěvku blogu Scotta Hanselmana jak získat přístup k NuGet, když nuget.org je mimo provoz (nebo jste palubě) (hanselman.com).Yes, see Scott Hanselman's Blog post How to access NuGet when nuget.org is down (or you're on a plane) (hanselman.com).

Jak nainstalovat balíčky v jiném umístění z výchozí složku balíčků?How do I install packages in a different location from the default packages folder?

Nastavte repositoryPath nastavení Nuget.Config pomocí nuget config -set repositoryPath=<path>.Set the repositoryPath setting in Nuget.Config using nuget config -set repositoryPath=<path>.

Jak se můžu vyhnout přidávání složce balíčků NuGet do správy zdrojových kódů?How do I avoid adding the NuGet packages folder into to source control?

Nastavte disableSourceControlIntegration v Nuget.Config k true.Set the disableSourceControlIntegration in Nuget.Config to true. Tento klíč funguje v řešení úrovni a proto je potřeba přidat do $(Solutiondir)\.nuget\Nuget.Config souboru.This key works at the solution level and hence need to be added to the $(Solutiondir)\.nuget\Nuget.Config file. Povolení obnovení balíčku ze sady Visual Studio automaticky vytvoří tento soubor.Enabling package restore from Visual Studio creates this file automatically.

Jak můžu vypnout obnovení balíčků?How do I turn off package restore?

Zobrazit povolení a zákaz obnovení balíčku.See Enabling and disabling package restore.

Proč se zobrazí zpráva "Nelze přeložit došlo k chybě závislosti" při instalaci místního balíčku se vzdálených závislostí?Why do I get an "Unable to resolve dependency error" when installing a local package with remote dependencies?

Je nutné vybrat všechny zdroje při instalaci místního balíčku do projektu.You need to select the All source when installing a local package into the project. To agreguje všechny kanály místo jen jeden.This aggregates all the feeds instead of using just one. Důvod se zobrazí tato chyba je, že uživatelé z místního úložiště se často chcete zabránit náhodnému instalace vzdálených balíčků z důvodu firemní zásady.The reason this error appears is that users of a local repository often want to avoid accidentally installing a remote package due to corporate polices.

Mám několik projektů ve stejné složce, jak můžete použít soubory samostatného souboru packages.config pro každý projekt?I have multiple projects in the same folder, how can I use separate packages.config files for each project?

Ve většině projektů, ve kterém live samostatné projekty do samostatné složky, to není problém protože identifikuje NuGet packages.config soubory v každém projektu.In most projects where separate projects live in separate folders, this is not a problem as NuGet identifies the packages.config files in each project. Nuget 3.3 + a více projektů ve stejné složce, můžete vložit název projektu do packages.config názvy souborů použijte vzor packages.{project-name}.config, a tento soubor používá NuGet.With NuGet 3.3+ and multiple projects in the same folder, you can insert the name of the project into the packages.config filenames use the pattern packages.{project-name}.config, and NuGet uses that file.

To není problém při používání PackageReference, protože každý soubor projektu obsahuje vlastní seznam závislostí.This is not an issue when using PackageReference, as each project file contains its own list of dependencies.

Nevidím v seznamu úložišť v nuget.org, jak to můžu získat zpátky?I don't see nuget.org in my list of repositories, how do I get it back?

  • Přidat https://api.nuget.org/v3/index.json do seznamu zdrojů, neboAdd https://api.nuget.org/v3/index.json to your list of sources, or
  • Odstranit %appdata%\.nuget\NuGet.Config (Windows) nebo ~/.nuget/NuGet/NuGet.Config (Mac/Linux) a nechat NuGet znovu vytvořit.Delete %appdata%\.nuget\NuGet.Config (Windows) or ~/.nuget/NuGet/NuGet.Config (Mac/Linux) and let NuGet re-create it.

Co jsou výchozí licenční podmínky Pokud balíček neobsahuje konkrétní informace o licencích?What are the default license terms if a package doesn't provide specific license information?

Každý balíček se řídí podmínkami, které jsou součástí balíčku.Each package is governed by the terms that are included with the package. Přečtěte si před přístupem k, stahování nebo získání všechny balíčky, které příslušné podmínky.You should review the applicable terms before accessing, downloading, or acquiring any packages. Na nuget.org, použijte informace o licenci odkaz na stránce balíček.On nuget.org, use the License Info link on the package page.

Pokud balíček neurčuje licenční podmínky, obraťte se přímo pomocí vlastníka balíčku obraťte se na vlastníky odkazu na stránce balíček pro nuget.org.If a package does not specify the licensing terms, contact the package owner directly using the Contact owners link on the nuget.org package page. Společnost Microsoft není licence duševního vlastnictví, od poskytovatelů třetích stran balíček a neodpovídá za informace, které jsou poskytovány třetími stranami.Microsoft does not license any intellectual property to you from third party package providers and is not responsible for information provided by third parties.

Správa balíčků na nuget.orgManaging packages on nuget.org

Můžete upravit po je nahraná metadata balíčků?Can I edit package metadata after it's been uploaded?

NuGet doporučuje podepsat všechny balíčky.NuGet recommends all packages to be signed. Princip návrhu podpisu balíčku je, že je podepsaný balíček obsahu neměnný, což zahrnuje soubor nuspec.A design principle of package signing is that signed package content must be immutable, which includes the nuspec. Úpravy metadat balíčku výsledkem změny do souboru nuspec, proto už není platná existující podpisy.Editing the package metadata results in changes to the nuspec, invalidating existing signatures. Doporučujeme, abyste úpravy stávajících pracovních postupů, aby nebyl vyžadován upravovat metadata balíčku po vytvoření balíčku.We recommend modifying existing workflows to not require editing the package metadata after the package has been created.

Všimněte si, že závislostí uvedených pro váš balíček se generují automaticky z balíčku samotného a nelze jej upravit.Note that dependencies listed for your package are generated automatically from the package itself and cannot be edited.

Kromě toho nahrání balíčků int.nugettest.org je skvělý způsob, jak otestovat a ověřit váš balíček přitom balíček k dispozici ve veřejné galerii.In addition, uploading packages to int.nugettest.org is a great way to test and validate your package without making a package available in the public gallery.

Je možné rezervovat názvy balíčků, které se publikují v budoucnosti?Is it possible to reserve names for packages that will be published in future?

Ano.Yes. ID můžete vyhradit pro balíčky na nuget.org vyžádáním předponu ID balíčku pro váš účet.You can reserve IDs for packages on nuget.org by requesting a package ID prefix for your account. Aby bylo možné požádat o předponu ID balíčku, postupujte podle pokynů dokumentaci.In order to request a package ID prefix, follow the instructions in the documentation.

Jak uplatním nárok na vlastnictví pro balíčky?How do I claim ownership for packages ?

Zobrazit vlastníky Správa balíčků na nuget.org.See Managing package owners on nuget.org.

Jak zacházet s vlastníka balíčku, který porušuje licence na softwareHow do I deal with a package owner who is violating my software license?

Doporučujeme komunity NuGet spolupráce řešení všech sporů, které mohou vzniknout mezi vlastníky balíčku a vlastníci dalšího softwaru.We encourage the NuGet community to work together to resolve any disputes that may arise between package owners and the owners of other software. Jsme vytvořený spor proces překladu dodržovat před položením správcům nuget.org intercede.We have crafted a dispute resolution process to follow before asking nuget.org administrators to intercede.

Je doporučeno uložit Moje testovací balíčky nuget.org?Is it recommended to upload my test packages to nuget.org?

Pro účely testování můžete použít int.nugettest.org, nebo jako alternativní veřejné servery NuGet webu myget.org nebo Azure DevOps.For test purposes, you can use int.nugettest.org, or alternative public NuGet servers like myget.org or Azure DevOps.

Všimněte si, že nemusí být zachována balíčky nahráli do int.nugettest.org.Note that packages uploaded to int.nugettest.org may not be preserved.

Jaká je maximální velikost balíčky, které můžu nahrát do nuget.org?What is the maximum size of packages I can upload to nuget.org?

nuget.org umožňuje balíčky až 250MB, ale My doporučujeme udržování balíčky v části 1MB. Pokud je to možné a používání závislosti, které balíčky se propojují.nuget.org allows packages up to 250MB, but we recommend keeping packages under 1MB if possible and using dependencies to link packages together. Balíčky jako říci, obsahovat pouze jedno sestavení pro zabránění kolizím.As a rule of thumb, packages contain only one assembly to avoid collisions.

Stáhnout balíčky, takže větší balíčky mají vyšší pravděpodobnost selhání instalace, než menších NuGet pomocí protokolu HTTP.NuGet uses HTTP to download packages, so larger packages have a higher likelihood of failed installs than smaller ones.

Je možné sdílet závislosti mezi více balíčků zmenšit celková stahovaná velikost spotřebitelé vaše balíčky NuGet.It is possible to share dependencies between multiple packages, making the total download size for consumers of your NuGet packages smaller.

Závislosti jsou většinou statická a nikdy změnit.Dependencies are mostly static and never change. Pokud opravujete chybu v kódu, závislosti nemusí aktualizovat.When fixing a bug in code, the dependencies may not need to be updated. Pokud seskupíte závislosti, skončíte reshipping pokaždé, když větší balíčky.If you bundle dependencies, you end up reshipping larger packages every time. Rozdělením balíčky NuGet na související závislosti jsou mnohem podrobnějšího pro spotřebitele balíčku upgradu.By splitting NuGet packages into related dependencies, upgrades are much more fine-grained for consumers of your package.

není k dispozici nuget.orgnuget.org not accessible

Proč nejde stáhnout balíčky z nebo nahrání balíčků na nuget.org?Why can't I download packages from or upload packages to nuget.org?

Nejprve ujistěte se, že používáte nejnovější verze nugetu.First, make sure you're using the latest versions of NuGet. Pokud tuto verzi ani potom nedaří, obraťte se na podporu a poskytují další připojení, řešení potíží s informací, včetně:If that version continues to fail, contact support and provide additional connection troubleshooting information including:

  • Verze balíčku nuget, které používáteThe version of NuGet you're using
  • Zdroje balíčků, které používáteThe package sources you're using
  • Obnovení protokolu s podrobnou úroveň podrobnostíA restore log with detailed verbosity
  • MTR nebo trasování Fiddler (viz níže)MTR or a Fiddler traces (see below)
  • Zeměpisné oblastiYour geographical area
  • Verze vašeho operačního systémuYour operating system version
  • Konfigurace počítače (procesor, síť, pevný disk)Machine configuration (CPU, Network, hard drive)
  • Určuje, zda váš počítač není za proxy nebo brány firewallWhether your machine is behind a proxy or firewall
  • Verze rozhraní .NET, které jsou nainstalované na počítačiThe versions of .NET that are installed on the machine
  • Verze nástrojů pro různé platformy jako .NET CLI nebo dnů, které používáteVersions of cross-platform tools such as .NET CLI, or DNU that you're using

K zachycení MTR:To capture MTR:

  • Stáhněte si WinMTR z http://winmtr.net/download/Download WinMTR from http://winmtr.net/download/

  • Zadejte api.nuget.org jako název hostitele a klikněte na Start.Enter api.nuget.org as the hostname and click Start.

  • Počkejte, dokud odeslané je sloupec > = 100.Wait until the Sent column is >= 100.

    Zachytávání MTR

  • Zkopírování textu do schránky.Copy text to clipboard.

K zachycení Fiddleru:To capture Fiddler:

  • Nainstalujte nejnovější verzi Fiddler.Install the latest version of Fiddler.
  • Spusťte aplikaci Fiddler a zakázat zachytávání provozu pomocí soubor > Capture Traffic nabídky.Start Fiddler and disable capturing traffic using the File > Capture Traffic menu.
  • Odebrat všechny relace (vybrat všechny položky v seznamu, stiskněte odstranit klíč).Remove all sessions (select all items in the list, press the Delete key).
  • Konfigurace aplikace Fiddler k zachycení přenosy HTTPS tak, že zkontrolujete přenosy HTTPS dešifrovat v HTTPS karty nástroje > Možnosti Fiddleru... nabídky.Configure Fiddler to capture HTTPS traffic by checking Decrypt HTTPS traffic in the HTTPS tab of the Tools > Fiddler Options... menu.
  • Zavřete Visual Studio.Close Visual Studio.
  • Povolit soubor > Capture Traffic nabídky.Enable the File > Capture Traffic menu.
  • Spusťte Visual Studio nebo nuget.exe .exe a provádět akce, které nefungují.Start Visual Studio or nuget.exe .exe and perform the actions that are not working. Přenosy generované tyto akce by měla objevoval ve Fiddleru.The traffic generated by these actions should show up in Fiddler.
  • Po spuštění akce, které mají používat soubor > Uložit > všechny relace k uložení zaznamenané relace.Once the actions have run, use File > Save > All Sessions to store the captured sessions.

Poznámka: to může být nutné nastavit HTTP_PROXY proměnnou prostředí, aby http://127.0.0.1:8888 za směrování přenosů NuGet pomocí Fiddleru.Note: it may be required to set the HTTP_PROXY environment variable to http://127.0.0.1:8888 for routing NuGet traffic through Fiddler.

Pokud se to nepodaří, zkuste tipy uvedených v tomto příspěvku na StackOverflow.If that fails, try the tips mentioned in this StackOverflow post.

Jaké jsou koncové body rozhraní API pro nuget.org?What are the API endpoints for nuget.org?

V3: https://api.nuget.org/v3/index.json V2: https://www.nuget.org/api/v2/ (Všimněte si, že rozhraní API verze 2 je zastaralý a nefunguje s NuGet 4 +.)V3: https://api.nuget.org/v3/index.json V2: https://www.nuget.org/api/v2/ (Note that the V2 API is deprecated and does not work with NuGet 4+.)