Sdílet prostřednictvím


Přidání nebo odebrání odkazů pomocí Správce odkazů

Dialogové okno Správce odkazů můžete použít k přidání a správě odkazů na komponenty, které vyvíjíte vy, Microsoft nebo jiná společnost. Pokud vyvíjíte univerzální aplikaci pro Windows, váš projekt automaticky odkazuje na všechny správné knihovny DLL sady Windows SDK. Když vytvoříte projekt .NET, projekt automaticky odkazuje na potřebné součásti, jako je například sada .NET SDK, ale při přidávání funkcí je potřeba přidat odkazy. Některá rozhraní .NET API jsou vystavená v komponentách, které musíte přidat ručně. Odkazy na komponenty modelu COM nebo vlastní komponenty musí být přidány ručně.

Pokud je balíček NuGet k dispozici pro knihovnu, na kterou odkazujete, použijte Správce balíčků NuGet. Viz Instalace a použití balíčku NuGet.

Dialogové okno Správce odkazů

Dialogové okno Správce odkazů zobrazuje různé kategorie na levé straně v závislosti na typu projektu:

  • sestavení, s Framework a rozšíření subskupiny (pouze .NET Framework)

  • com obsahuje seznam všech komponent modelu COM, které jsou k dispozici pro odkazování

  • projekty

  • sdílené projekty

  • Windows s podskupinami Core a Extensions. Odkazy v sadě Windows SDK nebo sadách rozšíření SDK můžete prozkoumat pomocí prohlížeče objektů.

  • Procházets podskupinou Poslední

    Poznámka

    Pokud vyvíjíte projekty C++, nemusí se v dialogovém okně Správce odkazů zobrazit Procházet.

Přidání odkazu

  1. Ve Průzkumníku řešeníklikněte pravým tlačítkem myši na prvek Reference nebo Závislosti a poté v místní nabídce zvolte Přidat odkaz na projekt, Přidat odkaz na sdílený projektnebo Přidat odkaz na objekt COM. (Můžete kliknout pravým tlačítkem myši na uzel projektu a z rozevírací nabídky zvolit Přidat pro výběr z těchto možností.)

    snímek obrazovky s dialogovým oknem Přidat odkaz z místní nabídky v Průzkumníku řešení

    Správce odkazů otevře a zobrazí seznam dostupných odkazů podle skupiny.

    snímek obrazovky s dialogovým oknem Správce odkazů v sadě Visual Studio

  2. Vyberte odkaz, který chcete přidat, a pak vyberte OK.

    Poznámka

    Pokud odkaz, který hledáte, nevidíte, vyberte Procházet a odkaz vyhledejte. (Pokud vyvíjíte projekty C++, možná nevidíte možnost procházení.)

Karta Sestavení (pouze .NET Framework)

Poznámka

Karta Sestavení není k dispozici pro projekty, které cílí na .NET Core nebo .NET 5 a novější. Vyberte Procházet, vyhledejte sestavení v systému souborů. Poté ho přidejte jako odkaz. Pokud chcete zobrazit odkazovaná sestavení v projektu, rozbalte závislosti uzlu v projektu. V uzlu Dependencies můžete kliknutím pravým tlačítkem myši přidat nebo odebrat odkazy na projekt, zobrazit nebo odebrat sestavení v uzlu Assemblies, nebo otevřít prohlížeč balíčků NuGet pro správu těchto balíčků. Viz Instalace a správa balíčků v sadě Visual Studio pomocí správce balíčků NuGet v dokumentaci NuGet.

Pro projekty rozhraní .NET Framework jsou na kartě sestavení uvedena všechna sestavení .NET, která jsou k dispozici pro odkazování. Karta Sestavení nezobrazuje žádná sestavení z globální mezipaměti sestavení (GAC), protože sestavení v GAC jsou součástí běhového prostředí. Pokud nasadíte nebo zkopírujete aplikaci, která obsahuje odkaz na sestavení zaregistrované v GAC, sestavení se nenasadí ani nezkopíruje s aplikací bez ohledu na nastavení Kopírovat místní. Další informace naleznete v tématu Správa odkazů v projektu.

Když ručně přidáte odkaz na některý z oborů názvů EnvDTE (EnvDTE, EnvDTE80, EnvDTE90, EnvDTE90anebo EnvDTE100), nastavte ve vlastnostech odkazu vlastnost Vložit typy spolupráce na hodnotu False v okně Vlastnosti. Nastavení této vlastnosti na True může způsobit problémy se sestavením kvůli určitým vlastnostem EnvDTE, které nelze vložit.

Všechny desktopové projekty obsahují implicitní odkaz na mscorlib. Projekty jazyka Visual Basic obsahují implicitní odkaz na Microsoft.VisualBasic. Všechny projekty obsahují implicitní odkaz na System.Core, i když je odebrán ze seznamu odkazů.

Karta Sestavení se skládá ze dvou dílčích tabulek:

  1. Framework vypíše všechna sestavení, která tvoří cílovou architekturu.

    Pro projekty, které nejsou zaměřeny na .NET Core nebo Univerzální platformu Windows, karta Framework uvádí sestavení z cílového frameworku. Uživatel musí přidat všechny odkazy, které aplikace vyžaduje.

    Univerzální projekty Windows obsahují ve výchozím nastavení odkazy na všechna sestavení v cílovém rozhraní. Ve spravovaných projektech uzel jen pro čtení ve složce Reference v průzkumníku řešení označuje odkaz na celou architekturu. Proto karta Framework nevypíše žádná sestavení z rozhraní a místo toho zobrazí následující zprávu: "Na všechna sestavení rozhraní již odkazují. Pomocí prohlížeče objektů prozkoumejte odkazy v rozhraní.

  2. Rozšíření uvádí všechna sestavení, která vyvinula externí dodavatelé komponent a ovládacích prvků pro rozšíření cílové architektury. V závislosti na účelu uživatelské aplikace může tato sestavení potřebovat.

    Rozšíření se naplní výčtem sestavení registrovaných v následujících umístěních:

    32bitový počítač:

    • HKEY_CURRENT_USER\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]

    64bitový počítač:

    • HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]

    A starší verze [Identifikátor cílové architektury]

    Pokud například projekt cílí na rozhraní .NET Framework 4 na 32bitovém počítači, Extenze enumeruje sestavení zaregistrovaná v \Microsoft.NETFramework\v4.0\AssemblyFoldersEx, \Microsoft.NETFramework\v3.5\AssemblyFoldersEx, \Microsoft.NETFramework\v3.0\AssemblyFoldersExa \Microsoft.NETFramework\v2.0\AssemblyFoldersEx.

Některé komponenty v seznamu se nemusí zobrazit v závislosti na verzi architektury vašeho projektu. K této situaci může dojít za následujících podmínek:

  • Komponenta, která používá nedávnou verzi architektury, není kompatibilní s projektem, který cílí na starší verzi.

    Informace o tom, jak změnit verzi cílového rámce pro projekt, naleznete v přehledu zacílení rámce .

  • Komponenta, která používá starší verzi rozhraní .NET Framework, není kompatibilní s projektem, který cílí na novější rozhraní .NET Framework.

Další informace o kompatibilitě verzí mezi verzemi rozhraní .NET Framework naleznete v tématu Kompatibilita verzí.

Měli byste se vyhnout přidávání odkazů na soubory do výstupů jiného projektu ve stejném řešení, protože by to mohlo způsobit chyby kompilace. Místo toho pomocí karty Projekty dialogového okna Přidat odkaz vytvořit odkazy mezi projekty. Tento postup usnadňuje týmový vývoj tím, že umožňuje lepší správu knihoven tříd, které vytvoříte ve svých projektech. Další informace najdete v tématu Řešení potíží s poškozenými odkazy.

Poznámka

Odkaz na soubor místo odkazu na projekt se vytvoří, pokud cílová verze rozhraní jednoho projektu je .NET Framework 4.5 nebo novější a cílová verze druhého projektu je .NET Framework 2, 3, 3.5 nebo 4.0. Další informace o rozhraní .NET, .NET Framework a .NET Core najdete v tématu Co je .NET (a .NET Core).

Chcete-li zobrazit sestavení v dialogovém okně Přidat odkaz

  • Přesuňte nebo zkopírujte sestavení do jednoho z následujících umístění:

    • Aktuální adresář projektu. (Tato sestavení najdete pomocí karty Procházet.)

    • Ostatní adresáře projektů ve stejném řešení. (Tato sestavení najdete pomocí karty Projekty.)

    - nebo -

  • Nastavte klíč registru, který určuje umístění sestavení, která se mají zobrazit:

    Pro 32bitový operační systém přidejte jeden z následujících klíčů registru.

    • [HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    V 64bitovém operačním systému přidejte do 32bitového podregistru registru jeden z následujících klíčů registru.

    • [HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\<VersionMinimum>\AssemblyFoldersEx\MyAssemblies]@="<AssemblyLocation>"

    <versionMinimum> je nejnižší verze architektury, která se vztahuje. Pokud <VersionMinimum> je v3.0, složky zadané v AssemblyFoldersEx platí pro projekty, které cílí na .NET Framework 3.0 a novější.

    <AssemblyLocation> je adresář sestavení, která chcete zobrazit v dialogovém okně Přidat odkaz, například C:\MyAssemblies.

    Vytvoření klíče registru v uzlu HKEY_LOCAL_MACHINE umožňuje všem uživatelům zobrazit sestavení na určeném místě v dialogovém okně Přidat referenční. Vytvoření klíče registru v uzlu HKEY_CURRENT_USER má vliv pouze na nastavení pro aktuálního uživatele.

    Znovu otevřete dialogové okno Přidat Referenci. Sestavení by se měla zobrazit na kartě .NET. Pokud ne, ujistěte se, že jsou sestavení umístěna v zadaném AssemblyLocation adresáři, restartujte Visual Studio a zkuste to znovu.

Karta Projekty

Na kartě Projekty jsou uvedeny všechny kompatibilní projekty v aktuálním řešení, v podkartě Solution.

Projekt může odkazovat na jiný projekt, který cílí na jinou verzi architektury. Můžete například vytvořit projekt, který cílí na .NET 8.0, ale odkazuje na sestavení vytvořené pro .NET 6.0. Projekt .NET 6.0 však nemůže odkazovat na projekt .NET Framework 8.0. Pro více informací si přečtěte přehled cílení frameworku .

Karta Sdílené projekty

Přidejte odkaz na sdílený projekt na kartě Sdílené projekty v dialogovém okně Správce odkazů. Sdílené projekty umožňují napsat běžný kód, na který odkazuje mnoho různých projektů aplikací.

Karta Univerzální Windows

Na kartě Universal Windows jsou uvedeny všechny sady SDK specifické pro platformy, na kterých běží operační systémy Windows. Tato karta obsahuje dvě podskupiny: Core a Extensions.

Základní podskupina

Projekty univerzálních aplikací pro Windows mají ve výchozím nastavení odkaz na univerzální sadu Windows SDK. Podskupina Core ve Správci odkazů neuvádí žádná sestavení z univerzální sady Windows SDK.

Podskupina rozšíření

Rozšíření uvádí uživatelská SDK, která rozšiřují cílovou platformu Windows.

Sada SDK je kolekce souborů, se kterými sada Visual Studio pracuje jako s jednou komponentou. Na kartě Rozšíření jsou sady SDK vztahující se k projektu, z něhož bylo vyvoláno dialogové okno Správce odkazů, uvedeny jako jednotlivé položky. Při přidání do projektu se veškerý obsah sady SDK využívá v sadě Visual Studio tak, aby uživatel nemusel provádět žádné další akce k využití obsahu sady SDK v IntelliSense, sadě nástrojů, návrhářích, prohlížeči objektů, sestavení, nasazení, ladění a balení.

Informace o tom, jak zobrazit sadu SDK na kartě Extensions, naleznete v tématu Vytvoření sady pro vývoj softwaru.

Poznámka

Pokud projekt odkazuje na sadu SDK, která závisí na jiné sadě SDK, Visual Studio druhou sadu SDK nespotřebuje, pokud ručně nepřidáte odkaz na druhou sadu SDK. Když vyberete sadu SDK na kartě Rozšíření, dialogové okno Správce odkazů vám pomůže identifikovat závislosti této sady SDK tím, že zobrazí všechny závislosti v podokně s podrobnostmi.

Pokud typ projektu nepodporuje rozšíření, tato karta se nezobrazí v dialogovém okně Správce odkazů.

Karta COM

Na kartě COM jsou uvedeny všechny komponenty COM, které jsou k dispozici k odkazování. Pokud chcete přidat odkaz na registrovanou knihovnu COM DLL, která obsahuje interní manifest, nejprve odregistrujte knihovnu DLL. V opačném případě Visual Studio přidá odkaz na sestavení jako ovládací prvek ActiveX místo jako nativní knihovnu DLL.

Pokud typ projektu nepodporuje COM, karta se nezobrazí v dialogovém okně Správce odkazů.

Procházet

Pomocí tlačítka Procházet můžete vyhledat součást nebo sestavení v systému souborů.

Projekt může odkazovat na komponentu, která cílí na jinou verzi architektury. Můžete například vytvořit aplikaci, která cílí na rozhraní .NET Framework 4.7.2, ale odkazuje na komponentu, která cílí na rozhraní .NET Framework 4. Další informace naleznete v tématu Přehled cílení Framework.

Vyhněte se přidávání odkazů na soubory do výstupů jiného projektu ve stejném řešení, protože tato taktika může způsobit chyby kompilace. Místo toho použijte kartu Řešení dialogového okna Správce odkazů k vytvoření odkazů mezi projekty. To usnadňuje vývoj týmů tím, že umožňuje lepší správu knihoven tříd, které vytvoříte ve svých projektech. Další informace najdete v tématu Řešení potíží s poškozenými odkazy.

Sadu SDK nemůžete vyhledat a přidat ji do svého projektu. Můžete přejít na soubor (například sestavení nebo .winmd) a přidat ho pouze do svého projektu.

Při vytváření odkazu na soubor winMD je očekávané rozložení, že <FileName>.winmd, <FileName>.dlla <FileName>.pri soubory jsou umístěny vedle sebe. Pokud v následujících scénářích odkazujete na WinMD, zkopíruje se do výstupního adresáře projektu neúplná sada souborů a následně dojde k selhání sestavení a modulu runtime.

  • nativní komponenta: Nativní projekt vytvoří jeden WinMD pro každou nesouvislou sadu oborů názvů a jednu knihovnu DLL, která se skládá z implementace. WinMD mají různorodé názvy. Při odkazování na tento nativní soubor komponenty MSBuild nerozpozná, že WinMD soubory s odlišnými názvy tvoří jednu komponentu. Proto se zkopírují pouze identické názvy <FileName>.dll a <FileName>.winmd a dojde k chybám za běhu. Pokud chcete tento problém obejít, vytvořte sadu SDK rozšíření. Další informace naleznete v tématu Vytvoření sady Software Development Kit.

  • používání ovládacích prvků: minimálně ovládací prvek XAML se skládá z <FileName>.winmd, <FileName>.dll, <FileName>.pri, <XamlName>.xamla <ImageName>.jpg. Při sestavení projektu se soubory prostředků přidružené k odkazu na soubor nezkopírují do výstupního adresáře projektu, přičemž se zkopírují pouze <FileName>.winmd, <FileName>.dll a <FileName>.pri. Zaprotokoluje se chyba sestavení, která značí, že chybí prostředky <XamlName>.xaml a <ImageName>.jpg. Chcete-li dosáhnout úspěchu, zkopírujte tyto soubory prostředků ručně do výstupního adresáře projektu pro sestavení a ladění/běh. Pokud chcete tento problém obejít, vytvořte sadu SDK rozšíření podle kroků v Vytvoření sady Software Development Kit nebo upravte soubor projektu a přidejte následující vlastnost:

    <PropertyGroup>
       <GenerateLibraryOutput>True</GenerateLibraryOutput>
    </PropertyGroup>
    

    Poznámka

    Pokud přidáte vlastnost, může sestavení probíhat pomaleji.

Nedávný

Sestavení, modelu COM, Windowsa Procházet, každý z nich podporuje kartu Poslední, která uvádí seznam součástí, jež byly nedávno přidány do projektů.

Panel hledání v dialogovém okně Správce odkazů funguje přes kartu, na které je fokus. Pokud například do vyhledávacího panelu zadáte "System", zatímco je tabulátor Řešení aktivní, hledání nevrátí žádné výsledky, pokud název projektu v řešení neobsahuje "System".

Odebrání odkazu

Nepoužívané odkazy pro projekty stylu sady SDK v sadě Visual Studio můžete odebrat pomocí položky nabídky Odebrat nepoužívané odkazy.

snímek obrazovky s dialogovým oknem Odebrat nepoužitý odkaz z místní nabídky v Průzkumníku řešení

Další informace najdete v tématu Odebrání nepoužívaných odkazů.