Dela via


Lägga till eller ta bort referenser med hjälp av Referenshanteraren

Du kan använda dialogrutan Referenshanteraren för att lägga till och hantera referenser till komponenter som du, Microsoft eller något annat företag har utvecklat. Om du utvecklar en Universell Windows-app refererar projektet automatiskt till alla rätt DLL:er för Windows SDK. När du skapar ett .NET-projekt refererar projektet automatiskt till de komponenter som behövs, till exempel .NET SDK, men du måste lägga till referenser när du lägger till funktioner. Vissa .NET-API:er exponeras i komponenter som du måste lägga till manuellt. Referenser till COM-komponenter eller anpassade komponenter måste läggas till manuellt.

Om ett NuGet-paket är tillgängligt för biblioteket som du refererar till använder du NuGet Package Manager. Se Installera och använda ett NuGet-paket.

Dialogrutan Referenshanterare

Dialogrutan Referenshanterare visar olika kategorier till vänster, beroende på projekttyp:

  • Sammansättningar, med Framework och -tillägg undergrupper (endast.NET Framework)

  • COM- visar en lista över alla COM-komponenter som är tillgängliga för referens

  • Projekt

  • Delade Projekt

  • Windows, med Core och Extensions undergrupper. Du kan utforska referenserna i Windows SDK eller tilläggs-SDK:er med hjälp av Object Browser.

  • Bläddramed undergruppen Senaste

    Not

    Du kanske inte ser Bläddra i dialogrutan för Referenshanteraren när du utvecklar C++-projekt.

Lägga till en referens

  1. I Solution Explorer, högerklickar du på noden Referenser eller Beroenden, och väljer sedan antingen Lägg till projektreferens, Lägg till delad projektreferenseller Lägg till COM-referens från snabbmenyn. (Du kan högerklicka på projektnoden och välja Lägg till från den utfällbara menyn för att välja bland de här alternativen också.)

    Skärmbild av dialogrutan Lägg till referens från snabbmenyn i Solution Explorer.

    Reference Manager öppnas och visar tillgängliga referenser per grupp.

    Skärmbild av dialogrutan Referenshanteraren i Visual Studio.

  2. Välj en referens att lägga till och välj sedan OK.

    Anteckning

    Om du inte ser referensen du letar efter väljer du Bläddra för att hitta referensen. (Om du utvecklar C++-projekt kanske du inte ser något bläddringsalternativ.)

Fliken Sammansättningar (endast.NET Framework)

Notera

Fliken Assemblies är inte tillgänglig för projekt som riktar sig mot .NET Core eller .NET 5 och senare. Välj Bläddra för att hitta en sammansättning i filsystemet och lägg till den som referens. Om du vill se de refererade sammansättningarna i ett projekt expanderar du noden beroenden i projektet. Från noden Beroenden kan du högerklicka för att lägga till eller ta bort projektreferenser, visa eller ta bort sammansättningar i Sammansättningar nod eller öppna NuGet-paketwebbläsaren för att hantera NuGet-paket. Se Installera och hantera paket i Visual Studio med hjälp av NuGet Package Manager- i NuGet-dokumentationen.

För .NET Framework-projekt visar fliken sammansättningar alla .NET-sammansättningar som är tillgängliga för referens. Fliken sammansättningar visar inga sammansättningar från den globala sammansättningscachen (GAC) eftersom sammansättningar i GAC är en del av körmiljön. Om du distribuerar eller kopierar ett program som innehåller en referens till en sammansättning som är registrerad i GAC distribueras eller kopieras inte sammansättningen med programmet, oavsett inställningen Kopiera lokal. Mer information finns i Hantera referenser i ett projekt.

När du manuellt lägger till en referens till någon av EnvDTE-namnrymderna (EnvDTE, EnvDTE80, EnvDTE90, EnvDTE90aeller EnvDTE100), anger du egenskapen Embed Interop Types för referensen till False i fönstret Egenskaper. Att ange den här egenskapen till True kan orsaka byggproblem på grund av vissa EnvDTE-egenskaper som inte kan bäddas in.

Alla skrivbordsprojekt innehåller en implicit referens till mscorlib. Visual Basic-projekt innehåller en implicit referens till Microsoft.VisualBasic. Alla projekt innehåller en implicit referens till System.Core, även om den tas bort från listan med referenser.

Fliken sammansättningar består av två underflikar:

  1. Framework listar alla sammansättningar som utgör målramverket.

    För projekt som inte riktar in sig på .NET Core eller den Universal Windows Platform listar fliken Framework sammansättningarna från det målinriktade ramverket. Användaren måste lägga till alla referenser som programmet kräver.

    Universella Windows-projekt innehåller referenser till alla sammansättningar i målramverket som standard. I hanterade projekt anger en skrivskyddad nod under mappen Referenser i Solution Explorer referensen till hela ramverket. Fliken Framework räknar därför inte upp någon av sammansättningarna från ramverket och visar i stället följande meddelande: "Alla Framework-sammansättningar refereras redan. Använd Object Browser för att utforska referenserna i ramverket."

  2. Tillägg listar alla sammansättningar som externa leverantörer av komponenter och kontroller har utvecklat för att utöka målramverket. Beroende på syftet med användarprogrammet kan det behöva dessa sammansättningar.

    Tillägg fylls i genom att de sammansättningar som är registrerade på följande platser räknas upp:

    32-bitars dator:

    • 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]

    64-bitars dator:

    • 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]

    Och äldre versioner av [Target Framework Identifier]

    Om ett projekt till exempel riktar in sig på .NET Framework 4 på en 32-bitars dator, Tillägg räknar upp sammansättningar som är registrerade under \Microsoft.NETFramework\v4.0\AssemblyFoldersEx, \Microsoft.NETFramework\v3.3.5\AssemblyFoldersEx, \Microsoft.NETFramework\v3.0\AssemblyFoldersExoch \Microsoft.NETFramework\v2.0\AssemblyFoldersEx.

Vissa komponenter i listan kanske inte visas, beroende på ramverksversionen av projektet. Den här situationen kan inträffa under följande förhållanden:

  • En komponent som använder en nyligen genomförd ramverksversion är inte kompatibel med ett projekt som riktar sig mot en tidigare version.

    Information om hur du ändrar målramverksversionen för ett projekt finns i Framework-målöversikt.

  • En komponent som använder en äldre version av .NET Framework är inte kompatibel med ett projekt som riktar sig mot ett nyare .NET Framework.

Mer information om versionskompatibilitet mellan .NET Framework-versioner finns i Versionskompatibilitet.

Du bör undvika att lägga till filreferenser till utdata från ett annat projekt i samma lösning, eftersom det kan orsaka kompileringsfel. Använd i stället fliken Projects i dialogrutan Lägg till referens för att skapa referenser från projekt till projekt. Den här metoden gör teamutvecklingen enklare genom att ge bättre hantering av de klassbibliotek som du skapar i dina projekt. Mer information finns i Felsöka brutna referenser.

Anteckning

En filreferens i stället för en projektreferens skapas om målramverkets version av ett projekt är .NET Framework 4.5 eller senare, och målversionen av det andra projektet är .NET Framework 2, 3, 3.5 eller 4.0. Mer information om .NET, .NET Framework och .NET Core finns i Vad är .NET (och .NET Core).

Visa en sammansättning i dialogrutan Lägg till referens

  • Flytta eller kopiera sammansättningen till någon av följande platser:

    • Den aktuella projektkatalogen. (Du hittar dessa sammansättningar med hjälp av fliken Bläddra.)

    • Andra projektkataloger i samma lösning. (Du hittar dessa sammansättningar med hjälp av fliken Projects.)

    -eller-

  • Ange en registernyckel som anger platsen för sammansättningar som ska visas:

    För ett 32-bitars operativsystem lägger du till en av följande registernycklar.

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

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

    För ett 64-bitars operativsystem lägger du till en av följande registernycklar i en 32-bitars registerdatafil.

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

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

    <VersionMinimum> är den lägsta ramverksversionen som gäller. Om <VersionMinimum> är v3.0 gäller mappar som anges i AssemblyFoldersEx för projekt som är avsedda för .NET Framework 3.0 och senare.

    <AssemblyLocation> är katalogen för de sammansättningar som du vill ska visas i dialogrutan Lägg till referens, till exempel C:\MyAssemblies.

    Genom att skapa registernyckeln under noden HKEY_LOCAL_MACHINE kan alla användare se sammansättningarna på den angivna platsen i dialogrutan Lägg till referens. Att skapa registernyckeln under noden HKEY_CURRENT_USER påverkar endast inställningen för den aktuella användaren.

    Öppna dialogrutan Lägg till referens igen. Sammansättningarna ska visas på fliken .NET. Om de inte gör det kontrollerar du att sammansättningarna finns i den angivna katalogen AssemblyLocation, startar om Visual Studio och försöker igen.

Projektfliken

Fliken Projects listar alla kompatibla projekt i den aktuella lösningen i underfliken Solution.

Ett projekt kan referera till ett annat projekt som riktar sig mot en annan ramverksversion. Du kan till exempel skapa ett projekt som riktar sig till .NET 8.0 men som refererar till en sammansättning som har skapats för .NET 6.0. .NET 6.0-projektet kan dock inte referera till ett .NET Framework 8.0-projekt. Mer information finns i Framework-målöversikten.

Fliken Delade projekt

Lägg till en referens till ett delat projekt på fliken Delade projekt i dialogrutan Referenshanterare. Med delade projekt kan du skriva vanlig kod som refereras av många olika programprojekt.

Den universella Windows-fliken

Fliken Universal Windows visar alla SDK:er som är specifika för plattformar där Windows-operativsystem körs. Den här fliken har två undergrupper: Core och Extensions.

Kärnundergrupp

Universella Windows-appprojekt har som standard en referens till Universal Windows SDK. Därför räknas inte Core-undergruppen i Reference Manager upp någon av sammansättningarna från Universal Windows SDK.

Undergrupp för tillägg

Tillägg visar en lista över användar-SDK:er som utökar den riktade Windows-plattformen.

En SDK är en samling filer som Visual Studio behandlar som en enda komponent. På fliken Tillägg visas SDK:er som gäller för projektet som dialogrutan Referenshanteraren anropades från som enskilda poster. När allt SDK-innehåll läggs till i ett projekt används det av Visual Studio så att användaren inte behöver vidta några ytterligare åtgärder för att utnyttja SDK-innehållet i IntelliSense, verktygslåda, designers, Object Browser, build, deployment, debugging och packaging.

Information om hur du visar din SDK på fliken Tillägg finns i Skapa ett programutvecklingspaket.

Obs

Om ett projekt refererar till ett SDK som är beroende av en annan SDK använder Visual Studio inte det andra SDK:t om du inte lägger till en referens manuellt till det andra SDK:t. När du väljer ett SDK på fliken Tillägg hjälper dialogrutan Referenshanteraren dig att identifiera SDK-beroenden genom att visa eventuella beroenden i informationsfönstret.

Om en projekttyp inte stöder tillägg visas inte den här fliken i dialogrutan Referenshanteraren.

FLIK COM

Fliken COM visar alla COM-komponenter som är tillgängliga för referens. Om du vill lägga till en referens till en registrerad COM DLL som innehåller ett internt manifest avregistrerar du DLL först. Annars lägger Visual Studio till sammansättningsreferensen som en ActiveX-kontroll i stället för som en intern DLL.

Om en projekttyp inte stöder COM visas inte fliken i dialogrutan Referenshanteraren.

Bläddra

Du kan använda knappen Bläddra för att söka efter en komponent eller sammansättning i filsystemet.

Ett projekt kan referera till en komponent som riktar sig mot en annan ramverksversion. Du kan till exempel skapa ett program som riktar sig till .NET Framework 4.7.2 men refererar till en komponent som riktar sig mot .NET Framework 4. Mer information finns i Framework-målöversikten.

Undvik att lägga till filreferenser till utdata från ett annat projekt i samma lösning, eftersom den här taktiken kan orsaka kompileringsfel. Använd i stället fliken Lösning i dialogrutan Referenshanteraren för att skapa referenser från projekt till projekt. Detta gör teamutveckling enklare genom att ge bättre hantering av de klassbibliotek som du skapar i dina projekt. Mer information finns i Felsöka brutna referenser.

Du kan inte bläddra till ett SDK och lägga till det i projektet. Du kan bara bläddra till en fil (till exempel en sammansättning eller .winmd) och lägga till den i projektet.

När du gör en filreferens till en WinMD är den förväntade layouten att <FileName>.winmd, <FileName>.dlloch <FileName>.pri-filer placeras bredvid varandra. Om du refererar till en WinMD i följande scenarier kopieras en ofullständig uppsättning filer till projektutdatakatalogen och därmed uppstår fel vid generering och körning.

  • native-komponent: ett native-projekt skapar en WinMD för varje osammanhängande uppsättning av namnområden och en DLL som innehåller implementeringen. WinMD:erna har olika namn. När du refererar till den här inbyggda komponentfilen känner MSBuild inte igen att de olika namngivna WinMD:erna utgör en komponent. Därför kopieras endast de identiskt namngivna <FileName>.dll och <FileName>.winmd och körningsfel uppstår. Lös problemet genom att skapa ett tilläggs-SDK. Mer information finns i Skapa ett programutvecklingspaket.

  • Använda kontroller: en XAML-kontroll består minst av en <FileName>.winmd, <FileName>.dll, <FileName>.pri, <XamlName>.xamloch en <ImageName>.jpg. När projektet skapas kopieras inte de resursfiler som är associerade med filreferensen till projektets utdatakatalog, och endast <FileName>.winmd, <FileName>.dll och <FileName>.pri kopieras. Ett byggfel loggas som anger att resurserna <XamlName>.xaml och <ImageName>.jpg saknas. Om du vill lyckas kopierar du dessa resursfiler manuellt till projektutdatakatalogen för att skapa och felsöka/köra. Du kan lösa det här problemet genom att antingen skapa ett tilläggs-SDK genom att följa stegen i Skapa ett Programutvecklingspaket eller redigera projektfilen för att lägga till följande egenskap:

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

    Obs

    Om du lägger till egenskapen kan det leda till att bygget går långsammare.

Senaste

Sammansättningar, COM, Windowsoch Bläddra stöder var och en fliken Senaste, som räknar upp listan över komponenter som nyligen har lagts till i projekt.

Sökfältet i dialogrutan Referenshanteraren körs över fliken som är i fokus. Om du till exempel skriver "System" i sökfältet medan fliken Solution är i fokus returnerar sökningen inga resultat om inte lösningen består av ett projektnamn som innehåller "System".

Ta bort en referens

Du kan ta bort oanvända referenser för SDK-formatprojekt i Visual Studio med hjälp av menyalternativet Ta bort oanvänd referens.

Skärmbild av dialogrutan Ta bort oanvänd referens från snabbmenyn i Solution Explorer.

Mer information finns i Ta bort oanvända referenser.