Nejčastější dotazy NuGetNuGet frequently-asked questions

Co je potřeba spustit NuGet?What is required to run NuGet?

Všechny informace ohledně uživatelského rozhraní a nástroje příkazového řádku je k dispozici v instalace Průvodce.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 balíčky lze vytvořit 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ě v systému Windows, existují známé problémy na Linuxu a OS X. najdete Mono problémy 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 mohu zjistit, co balíček obsahuje a zda je stabilní a užitečné pro Moje 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 stránka výpis na nuget.org (nebo jiného privátního kanálu).The primary source for learning about a package is its listing page on nuget.org (or another private feed). Každý balíček stránky na nuget.org obsahuje popis balíčku, jeho historie verzí a Statistika využití.Each package page on nuget.org includes a description of the package, its version history, and usage statistics. Informace části na stránce balíček také obsahuje odkaz na projektu webové stránky, kde je obvykle najít mnoho příklady a další dokumentaci, která vás se způsobu použití balíčku.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 vyhledá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 podporuje NuGet v různých produktů Visual Studio?How is NuGet supported in different Visual Studio products?

Jak zkontrolovat přesnou verzi systému NuGet nástroje, které jsou nainstalovány?How do I check the exact version of the NuGet tools that are installed?

V sadě Visual Studio, použijte pomoci > o sadě Microsoft Visual Studio příkazů a podívejte se na verzi zobrazí vedle možnosti 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 nástroje 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 jsou podporované systémem NuGet?What programming languages are supported by NuGet?

NuGet obecně se dá použít pro jazyky rozhraní .NET a je navržená tak, aby knihovny .NET do projektu.NuGet generally works for .NET languages and is designed to bring .NET libraries into a project. Vzhledem k tomu, že podporuje také MSBuild a Visual Studio automatizace v některé typy projektů, podporuje také další projekty a jazyky do různých stupňů.Because it also supports MSBuild and Visual Studio automation in some project types, it also supports other projects and languages to various degrees.

Nejnovější verzi NuGet podporuje C#, Visual Basic, F #, WiX a C++.The most recent version of NuGet supports C#, Visual Basic, F#, WiX, and C++.

Jaké šablony projektů jsou podporované systémem NuGet?What project templates are supported by NuGet?

NuGet má plnou podporu pro celou řadu šablon projektu, například Windows, webové, 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 aktualizovat balíčky, které jsou součástí šablony sady Visual StudioHow do I update packages that are part of Visual Studio templates?

Přejděte na aktualizace 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.

Aktualizovat šablonu sám sebe, musíte ručně aktualizovat úložiště šablon.To update the template itself, you need to manually update the template repository. V tématu Xavier Decoster blog na toto téma.See Xavier Decoster's blog on this subject. Všimněte si, že to se provádí na vlastní nebezpečí, protože ruční aktualizace může dojít k poškození šablony Pokud nejnovější verzi všechny závislosti nejsou vzájemně kompatibilní.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 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. Najdete v článku instalace Průvodce a referenční dokumentace rozhraní příkazového řádku.See the Install guide and the CLI reference.

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

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

Najdete v článku instalace Průvodce.See the Install guide.

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

Jsou povoleny nuget.exe v rámci podmínek licencí MIT znovu distribuovat.You are allowed to redistribute nuget.exe under the terms of the MIT license. Jste zodpovědní 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 post Rob Reynold.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 v systému 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 sadě Visual Studio automatizace objektový model se nazývá objekt prostředí DTE (Development Tools Environment).The top-level object in the Visual Studio automation object model is called the DTE (Development Tools Environment) object. To konzole 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 automatizace modelu v dokumentaci k rozšiřitelnosti Visual Studio.For more information, see Automation Model Overview in the Visual Studio Extensibility documentation.

Pokusu převést proměnnou $DTE typu DTE2, ale zobrazí chybová zpráva: nelze převést hodnotu "EnvDTE.DTEClass" typ "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 jak prostředí PowerShell komunikuje s objektem COM.This is a known issue with how PowerShell interacts with a COM object. Zkuste následující postup:Try the following:

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

Get-Interface Přidat hostitele NuGet PowerShell pomocné funkce.Get-Interface is a helper function added by the NuGet PowerShell host.

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

Jak seznamu Moje balíčku v informačním kanálu?How do I list my package in a feed?

V tématu vytváření a publikování balíčku.See Creating and publishing a package.

Mám několik verzí mé knihovny, které jiné cílové verze rozhraní .NET Framework. Jak lze 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?

V tématu podpora více verzí rozhraní .NET Framework a profily.See Supporting Multiple .NET Framework Versions and Profiles.

Jak mám nastavit vlastní úložiště nebo informační kanál?How do I set up my own repository or feed?

Najdete v článku hostování balíčků přehled.See the Hosting packages overview.

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

V tématu 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 úrovni projektu a řešení úrovni balíčku?What is the difference between a project-level package and a solution-level package?

Balíček úrovni řešení (NuGet 3.x+) se nainstaluje pouze jednou v řešení a pak je 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. Balíček úrovni projektu je nainstalována v každém projektu, který používá je.A project-level package is installed in each project that uses it. Balíček úrovni řešení může také nainstalovat nové příkazy, které lze volat 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 Scott Hanselman postup při nuget.org je dolů (nebo jste do roviny) získat přístup k NuGet (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 instalovat 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í v Nuget.Config pomocí nuget config -set repositoryPath=<path>.Set the repositoryPath setting in Nuget.Config using nuget config -set repositoryPath=<path>.

Jak vyhnout, přidání složky balíčků NuGet do do správy zdrojového kódu?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í úroveň a proto musí být přidán 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 lze vypnout obnovení balíčků?How do I turn off package restore?

V tématu povolení a zákaz obnovení balíčků.See Enabling and disabling package restore.

Proč se zobrazila "Nelze přeložit došlo k chybě závislosti" při instalaci balíčku, místní vzdálené závislosti?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í balíčku do projektu.You need to select the All source when installing a local package into the project. To agreguje informační kanály místo použití pouze jeden.This aggregates all the feeds instead of using just one. Tato chyba se zobrazí důvodem je, že uživatelé místní úložiště se často chtít vyhnout omylem instalaci vzdálených balíčků z důvodu podnikové 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.

Je nutné více projektů ve stejné složce, jak můžete použít samostatné packages.config soubory 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ě projekty bydlišti samostatné projekty v samostatné složky, to není problém jako NuGet identifikuje packages.config soubory do každého 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. U balíčku NuGet 3.3 + a více projektů ve stejné složce, můžete vložit název projektu do packages.config názvy souborů pomocí vzoru packages.{project-name}.config, a NuGet použije tento soubor.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žití PackageReference, protože každý soubor projektu obsahuje vlastní seznam závislosti.This is not an issue when using PackageReference, as each project file contains its own list of dependencies.

Nuget.org se nezobrazí v seznamu úložišť, jak lze získat ho 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 si na seznam 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 umožní NuGet znovu vytvořit.Delete %appdata%\.nuget\NuGet.Config (Windows) or ~/.nuget/NuGet/NuGet.Config (Mac/Linux) and let NuGet re-create it.

Jaké jsou výchozí licenční podmínky Pokud balíček neposkytuje 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 podmínky použít před přístup, stahování nebo získávání všechny balíčky.You should review the applicable terms before accessing, downloading, or acquiring any packages. Na nuget.org, použijte licenční informace 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 na vlastníka balíčku přímo pomocí obraťte se na vlastníky odkaz na stránce balíček 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í vám ze zprostředkovatelů balíček třetích stran a není zodpovědná za informace třetích stran.Microsoft does not license any intellectual property to you from third party package providers and is not responsible for information provided by third parties.

Spravovat balíčky v nuget.orgManaging packages on nuget.org

Můžete upravit metadata balíčků, až se nahrají?Can I edit package metadata after it's been uploaded?

NuGet doporučuje všechny balíčky k podepsání.NuGet recommends all packages to be signed. Princip návrhu podepisování balíčku je, že podepsaný balíček obsahu musí být 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 metadata balíčků výsledkem změny pro soubor nuspec, zneplatnění existující podpisy.Editing the package metadata results in changes to the nuspec, invalidating existing signatures. Doporučujeme, abyste úprava existující pracovní postupy a nevyžadují úpravy metadata balíčků 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 pro svůj balíček uvedené závislosti jsou automaticky generovány z balíčku sám sebe a nelze jej upravit.Note that dependencies listed for your package are generated automatically from the package itself and cannot be edited.

Kromě toho odesílání balíčků staging.nuget.org je skvělým způsobem, jak testování a ověření vašeho balíčku bez zpřístupnění balíček ve veřejné galerii.In addition, uploading packages to staging.nuget.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 pro balíčky, které budou publikovány 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 tím, že požádá 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. Chcete-li 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 nárokovat vlastnictví pro balíčky?How do I claim ownership for packages ?

V tématu Správa vlastníků balíčku na nuget.org.See Managing package owners on nuget.org.

Řešení s vlastníka balíčku, který je bychom při tom porušili Moje softwarových licencíHow do I deal with a package owner who is violating my software license?

Doporučujeme komunitou NuGet spolupracovat na řešení sporů, které může způsobit mezi balíček vlastníků a vlastníci na ostatní software.We encourage the NuGet community to work together to resolve any disputes that may arise between package owners and the owners of other software. Budeme mít vytvořené proces řešení sporu dříve, než s dotazem, správcům nuget.org intercede.We have crafted a dispute resolution process to follow before asking nuget.org administrators to intercede.

Se doporučuje nahrát Moje testovací balíčky do nuget.org?Is it recommended to upload my test packages to nuget.org?

Pro účely testování můžete použít staging.nuget.org, nebo jako alternativní veřejné servery NuGet myget.org nebo Visual Studio Team Services.For test purposes, you can use staging.nuget.org, or alternative public NuGet servers like myget.org or Visual Studio Team Services.

Všimněte si, že balíčky nahrán do staging.nuget.org nelze zachovat.Note that packages uploaded to staging.nuget.org may not be preserved. V tématu dát sbohem všem preview.See Goodbye preview.

Jaká je maximální velikost balíčků, které I můžete uložit 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 nemůžeme doporučujeme zachovat balíčky v části 1MB, pokud je to možné a použití závislosti propojení balíčky současně.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 existuje pravidlo, obsahovat pouze jeden sestavení, aby se zabránilo kolizí.As a rule of thumb, packages contain only one assembly to avoid collisions.

NuGet stáhnout balíčky, takže větší balíčky mít vyšší pravděpodobnost selhání nainstaluje než menším 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 velikost stažených pro příjemci vašich balíčků 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. Při opravě chyby v kódu, nemusí být závislosti nutné aktualizovat.When fixing a bug in code, the dependencies may not need to be updated. Pokud jste sady závislosti, skončili reshipping pokaždé, když větší balíčky.If you bundle dependencies, you end up reshipping larger packages every time. Rozdělením balíčků NuGet do související závislosti, upgrade je mnohem podrobnějšího pro spotřebitele vašeho balíčku.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č nelze stáhnout balíčky nebo balíčky odešlete do nuget.org?Why can't I download packages from or upload packages to nuget.org?

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

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

Chcete-li zaznamenat 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 tlačítko spustit.Enter api.nuget.org as the hostname and click Start.

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

    Zaznamenání MTR

  • Zkopírujte text do schránky.Copy text to clipboard.

Chcete-li zaznamenat Fiddler:To capture Fiddler:

  • Nainstalujte nejnovější verzi Fiddler.Install the latest version of Fiddler.
  • Spusťte aplikaci Fiddler a zakázat pomocí zaznamenávání provoz soubor > zachycování provozu nabídky.Start Fiddler and disable capturing traffic using the File > Capture Traffic menu.
  • Odeberte všechny relace (vyberte všechny položky v seznamu, stiskněte odstranit klíč).Remove all sessions (select all items in the list, press the Delete key).
  • Nakonfigurujte aplikaci Fiddler k zachycení provoz HTTPS kontrolou provoz HTTPS dešifrovat v HTTPS kartě nástroje > Možnosti Fiddler... 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 > zachycování provozu 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 dat vytvářené pomocí tyto akce by měl zobrazí v aplikaci Fiddler.The traffic generated by these actions should show up in Fiddler.
  • Jakmile akce, které jste spustili, použijte soubor > Uložit > všechny relace k uložení zaznamenané relací.Once the actions have run, use File > Save > All Sessions to store the captured sessions.

Poznámka: může být nezbytné k nastavení HTTP_PROXY proměnnou prostředí http://127.0.0.1:8888 pro směrování provozu NuGet prostřednictvím aplikaci Fiddler.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 nezdaří, zkuste tipy uvedených v tomto blogu 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+.)