Dela via


Hantera referenser i ett projekt

Innan du skriver kod mot en extern komponent eller ansluten tjänst måste projektet först innehålla en referens till den. En referens är i princip en post i en projektfil som innehåller den information som Visual Studio behöver för att hitta komponenten eller tjänsten.

Hur du lägger till en referens beror på projekttypen för koden du arbetar med:

Du kan lägga till en referens till följande typer av komponenter och tjänster:

  • .NET-klassbibliotek eller sammansättningar

  • UWP-appar

  • COM-komponenter

  • Andra sammansättningar eller klassbibliotek för projekt i samma lösning

  • Delade projekt

  • XML-webbtjänster

UWP-appreferenser

Universal Windows Platform (UWP) tillhandahåller en gemensam appplattform för varje enhet som kör Windows. Mer information om hur du skapar en UWP-app finns i Tutorial: Create your first Universal Windows Platform application in Visual Studio with XAML and C#.

Projektreferenser

UWP-projekt (Universal Windows Platform) kan skapa referenser till andra UWP-projekt i lösningen, eller till Windows 8.1-projekt eller binärfiler, förutsatt att dessa projekt inte använder API:er som har föråldrats i Windows 10 och senare. Mer information finns i Flytta från Windows Runtime 8 till UWP.

Om du väljer att rikta om Windows 8.1-projekt till Windows 10 och senare kan du läsa Port, migrera och uppgradera Visual Studio-projekt.

Tips

Information om hur du skapar och skapar en ny UWP-app för Windows 10 och Windows 11 finns i Välj en UWP-version.

Tilläggs-SDK-referenser

Visual Basic-, C#-, C++- och JavaScript Universal Windows Platform-appar (UWP) kan referera till tilläggs-SDK:er som är avsedda för Windows 8.1, så länge dessa tilläggs-SDK:er inte använder API:er som har föråldrats i Windows 10 och senare. Kontrollera SDK-leverantörswebbplatsen för tillägg för att ta reda på om den kan refereras av UWP-appar.

Om du fastställer att tilläggs-SDK:t som refereras av din app inte stöds måste du utföra följande steg:

  1. Titta på namnet på projektet som orsakar felet. Den plattform som projektet riktar in sig på anges inom parenteser bredvid projektnamnet. Till exempel innebär MyProjectName (Windows 8.1) att projektet MyProjectName riktar sig mot plattformsversionen Windows 8.1.

  2. Gå till platsen för leverantören som äger tilläggs-SDK:et som inte stöds och installera versionen av tilläggs-SDK:et med beroenden som är kompatibla med den version av plattformen som projektet riktar in sig på.

    Obs

    Ett sätt att ta reda på om ett tilläggs-SDK har beroenden för andra tilläggs-SDK:er är genom att titta i Reference Manager. Starta om Visual Studio, skapa ett nytt C#UWP-appprojekt och högerklicka sedan på projektet och välj Lägg till referens. Gå till fliken Windows, sedan fliken Tillägg underfliken och välj tilläggs-SDK. Titta på den högra panelen i Reference Manager. Om den har beroenden visas de där.

    Viktig

    Om ditt projekt specifikt riktar in sig på Windows 10 och tilläggs-SDK:t som installerades i föregående steg har ett beroende av Microsoft Visual C++ Runtime Package är versionen av Microsoft Visual C++ Runtime Package som är kompatibel med Windows 10 v14.0 och installeras med Visual Studio.

  3. Om tilläggs-SDK:et som du installerade i föregående steg har beroenden för andra tilläggs-SDK:er går du till platserna för de leverantörer som äger beroendena och installerar sedan de versioner av dessa beroenden som är kompatibla med den version av plattformen som projektet riktar in sig på.

  4. Starta om Visual Studio och öppna appen.

  5. Högerklicka på Referenser eller Beroenden-noden i projektet som orsakade felet, och sedan välj Lägg till referens.

  6. Välj fliken Windows och sedan underfliken Tillägg, avmarkera kryssrutorna för de gamla tilläggs-SDK:erna och markera sedan kryssrutorna för de nya tilläggs-SDK:erna. Välj OK.

Lägga till en referens vid designtillfället

När du refererar till en sammansättning i projektet söker Visual Studio efter sammansättningen på 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 de här sammansättningarna på fliken Projects.)

Note

  • Alla projekt innehåller en underförstådd referens till mscorlib.
  • Alla projekt innehåller en underförstådd referens till System.Core, även om System.Core tas bort från listan med referenser.
  • Visual Basic-projekt innehåller en underförstådd referens till Microsoft.VisualBasic.

Referenser till delade komponenter under körningstid

Under körning måste komponenter antingen finnas i projektets utdatasökväg eller i den globala sammansättningscachen (GAC). Om projektet innehåller en referens till ett objekt som inte finns på någon av dessa platser måste du kopiera referensen till projektets utdatasökväg när du skapar projektet. Egenskapen CopyLocal anger om kopian måste göras. Om värdet är Truekopieras referensen till projektkatalogen när du skapar projektet. Om värdet är Falsekopieras inte referensen.

Om du distribuerar ett program som innehåller en referens till en anpassad komponent som är registrerad i GAC distribueras inte komponenten med programmet, oavsett inställningen CopyLocal. I tidigare versioner av Visual Studio kan du ange egenskapen CopyLocal på en referens för att säkerställa att sammansättningen har distribuerats. Nu måste du lägga till sammansättningen manuellt i mappen \Bin. Den här åtgärden granskar all anpassad kod, vilket minskar risken för att publicera anpassad kod som du inte är bekant med.

Som standard är egenskapen CopyLocal inställd på False om sammansättningen eller komponenten finns i den globala sammansättningscacheminnet eller är en ramverkskomponent. Annars är värdet inställt på True. Referenser från projekt till projekt är alltid inställda på True.

Referera till ett projekt eller en sammansättning som riktar sig mot en annan version av .NET

Du kan skapa program som refererar till projekt eller sammansättningar som är inriktade på en annan version av .NET. Du kan till exempel skapa ett program som riktar sig till .NET Framework 4.6, som refererar till en sammansättning som riktar sig mot .NET Framework 4.5. Om du skapar ett projekt som är avsett för en tidigare version av .NET kan du inte ange en referens i projektet till ett projekt eller en sammansättning som riktar sig mot en nyare version.

Mer information finns i Framework-målöversikten.

Projekt-till-projekt-referenser

Referenser från projekt till projekt är referenser till projekt som innehåller sammansättningar. du lägger till projektreferenser med hjälp av fliken Projects i dialogrutan Referenshanterare. Visual Studio kan hitta en assembly när en sökväg till projektet anges.

När du har ett projekt som skapar en sammansättning bör du referera till projektet och inte använda en filreferens. Fördelen med en referens mellan projekt är att den skapar ett beroende mellan projekten i byggsystemet. Det beroende projektet skapas om det har ändrats sedan det senaste gången referensprojektet skapades. En filreferens skapar inte ett byggberoende, så det är möjligt att skapa referensprojektet utan att skapa det beroende projektet och referensen kan bli föråldrad. (Projektet kan alltså referera till en tidigare byggd version av projektet.) Detta kan leda till att flera versioner av en enda DLL krävs i bin katalog, vilket inte är möjligt. När den här konflikten inträffar visas ett meddelande, till exempel "Varning: beroendet 'fil' i projektet 'project' kan inte kopieras till körmappen eftersom det skulle skriva över referensen 'fil'." Mer information finns i Felsöka brutna referenser och Så här: Skapa och ta bort projektberoenden.

Not

En filreferens i stället för en projekt-till-projekt-referens skapas om målversionen av .NET Framework för ett projekt är version 4.5 och målversionen av det andra projektet är version 2, 3, 3.5 eller 4.0.

Referenser för delat projekt

Till skillnad från de flesta andra projekttyper har ett delat projekt inte några binära utdata. I stället kompileras koden till varje projekt som refererar till den. Med delade projekt kan du skriva vanlig kod som refereras av många olika programprojekt. Koden kompileras som en del av varje referensprojekt och kan innehålla kompilatordirektiv som hjälper dig att införliva plattformsspecifika funktioner i den delade kodbasen. Lägg till en referens till ett delat projekt på fliken Delade projekt i dialogrutan Referenshanterare.

Filreferenser

Filreferenser är direkta referenser till sammansättningar utanför kontexten för ett Visual Studio-projekt. Du skapar dem med hjälp av fliken Bläddra i dialogrutan Referenshanteraren. Använd en filreferens när du bara har en sammansättning eller komponent, och inte projektet som skapar den som utdata.