Verwijzingen in een project beheren
Voordat u code schrijft voor een extern onderdeel of een verbonden service, moet uw project eerst een verwijzing naar het onderdeel bevatten. Een verwijzing is in wezen een vermelding in een projectbestand met de informatie die Visual Studio nodig heeft om het onderdeel of de service te vinden.
Hoe u een verwijzing toevoegt, is afhankelijk van het projecttype voor de code waaraan u werkt:
Als u een Afhankelijkheden-knooppunt in Solution Explorerziet, kunt u het contextmenu met de rechtermuisknop gebruiken om Voeg projectverwijzing toete selecteren.
U kunt ook met de rechtermuisknop op het projectknooppunt klikken en >Projectverwijzingtoevoegen selecteren.
Als u een Referenties knooppunt in Solution Explorerziet, kunt u het contextmenu met de rechtermuisknop gebruiken om Referentie toevoegente selecteren.
Of klik met de rechtermuisknop op het projectknooppunt en selecteer >verwijzing toevoegen.
Zie Procedure: Verwijzingen toevoegen of verwijderenvoor meer informatie.
U kunt een verwijzing toevoegen naar de volgende typen onderdelen en services:
.NET-klassebibliotheken of assemblies
UWP-apps
COM-onderdelen
Andere assemblies of klassebibliotheken van projecten in dezelfde oplossing
Gedeelde projecten
XML-webservices
UWP-app-verwijzingen
De Universal Windows Platform (UWP) biedt een algemeen app-platform voor elk apparaat waarop Windows wordt uitgevoerd. Zie Zelfstudie: Uw eerste Universele Windows-platformtoepassing maken in Visual Studio met XAML en C#voor meer informatie over het maken van een UWP-app.
Projectverwijzingen
UWP-projecten (Universal Windows Platform) kunnen verwijzingen maken naar andere UWP-projecten in de oplossing, of naar Windows 8.1-projecten of binaire bestanden, mits deze projecten geen API's gebruiken die zijn afgeschaft in Windows 10 en hoger. Zie Overstappen van Windows Runtime 8 naar UWP-voor meer informatie.
Als u ervoor kiest om Windows 8.1-projecten te retargeten naar Windows 10 en hoger, raadpleegt u de documentatie over porten, migreren en upgraden van Visual Studio-projecten.
Fooi
Zie Een UWP-versie kiezenvoor meer informatie over het maken en bouwen van een nieuwe UWP-app voor Windows 10 en Windows 11.
Extensie-SDK-verwijzingen
Visual Basic-, C#-, C++- en JavaScript-universele Windows Platform (UWP)-apps kunnen naar extensie-SDK's verwijzen die zijn gericht op Windows 8.1, zolang deze extensie-SDK's geen API's gebruiken die zijn afgeschaft in Windows 10 en hoger. Controleer de extensie-SDK-leveranciersite om erachter te komen of ernaar kan worden verwezen door UWP-apps.
Als u vaststelt dat de Extensie-SDK waarnaar wordt verwezen door uw app niet wordt ondersteund, moet u de volgende stappen uitvoeren:
Bekijk de naam van het project dat de fout veroorzaakt. Het platform waarop uw project is gericht, wordt tussen haakjes naast de projectnaam vermeld. Bijvoorbeeld, MyProjectName (Windows 8.1) betekent dat uw project MyProjectName gericht is op platformversie Windows 8.1.
Ga naar de site van de leverancier die eigenaar is van de niet-ondersteunde Extensie-SDK en installeer de versie van de Extensie-SDK met afhankelijkheden die compatibel zijn met de versie van het platform waarop uw project is gericht.
Notitie
Een manier om erachter te komen of een Extension SDK afhankelijk is van andere extensie-SDK's, is door te zoeken in Reference Manager-. Start Visual Studio opnieuw op, maak een nieuw C# UWP-app-project en klik met de rechtermuisknop op het project en selecteer Referentie toevoegen. Ga naar het tabblad Windows, selecteer vervolgens het -extensies subtabblad en selecteer de Extensie-SDK. Bekijk het rechterdeelvenster in de Reference Manager. Als deze afhankelijkheden heeft, worden ze daar vermeld.
Belangrijk
Als uw project specifiek gericht is op Windows 10 en de Extensie-SDK die in de vorige stap is geïnstalleerd, afhankelijk is van het Microsoft Visual C++ Runtime-pakket, is de versie van het Microsoft Visual C++ Runtime-pakket dat compatibel is met Windows 10 v14.0 en is geïnstalleerd met Visual Studio.
Als de Extensie-SDK die u in de vorige stap hebt geïnstalleerd afhankelijk is van andere extensie-SDK's, gaat u naar de sites van de leveranciers die eigenaar zijn van de afhankelijkheden en installeert u vervolgens de versies van deze afhankelijkheden die compatibel zijn met de versie van het platform waarop uw project is gericht.
Start Visual Studio opnieuw op en open uw app.
Klik met de rechtermuisknop op het knooppunt Verwijzingen of Afhankelijkheden knooppunt in het project dat de fout heeft veroorzaakt en selecteer vervolgens Verwijzing toevoegen.
Selecteer het tabblad Windows en schakel vervolgens het subtabblad Extensies uit, schakel de selectievakjes voor de oude extensie-SDK's uit en schakel vervolgens de selectievakjes voor de nieuwe extensie-SDK's in. Selecteer OK-.
Een verwijzing toevoegen tijdens het ontwerp
Wanneer u een verwijzing naar een assembly in uw project maakt, zoekt Visual Studio op de volgende locaties naar de assembly:
De huidige projectmap. (U kunt deze assemblages vinden met behulp van het tabblad Bladeren.)
Andere projectmappen in dezelfde oplossing. (U vindt deze assembly's op het tabblad Projecten.)
Notitie
- Alle projecten bevatten een impliciete verwijzing naar mscorlib-.
- Alle projecten bevatten een impliciete verwijzing naar
System.Core
, zelfs alsSystem.Core
wordt verwijderd uit de lijst met verwijzingen. - Visual Basic-projecten bevatten een impliciete verwijzing naar Microsoft.VisualBasic.
Verwijzingen naar gedeelde onderdelen tijdens runtime
Tijdens runtime moeten onderdelen zich in het uitvoerpad van het project of in de GAC (Global Assembly Cache) bevinden. Als het project een verwijzing bevat naar een object dat zich niet op een van deze locaties bevindt, moet u de verwijzing naar het uitvoerpad van het project kopiëren wanneer u het project bouwt. De eigenschap CopyLocal geeft aan of deze kopie moet worden gemaakt. Als de waarde is Waar, wordt de verwijzing gekopieerd naar de projectmap wanneer u het project bouwt. Als de waarde is False, wordt de verwijzing niet gekopieerd.
Als u een toepassing implementeert die een verwijzing bevat naar een aangepast onderdeel dat is geregistreerd in de GAC, wordt het onderdeel niet geïmplementeerd met de toepassing, ongeacht de CopyLocal instelling. In eerdere versies van Visual Studio kon u de eigenschap CopyLocal instellen op een verwijzing om ervoor te zorgen dat de assembly werd geïmplementeerd. Nu moet u de assembly handmatig toevoegen aan de map \Bin. Met deze actie wordt alle aangepaste code gecontroleerd, waardoor het risico wordt beperkt dat aangepaste code wordt gepubliceerd waarmee u niet bekend bent.
De eigenschap CopyLocal is standaard ingesteld op False als de assembly of het onderdeel zich in de globale assemblycache bevindt of een frameworkonderdeel is. Anders wordt de waarde ingesteld op True. Project-naar-projectverwijzingen zijn altijd ingesteld op True.
Verwijzen naar een project of assembly die is gericht op een andere versie van .NET
U kunt toepassingen maken die verwijzen naar projecten of assembly's die zijn gericht op een andere versie van .NET. U kunt bijvoorbeeld een toepassing maken die is gericht op .NET Framework 4.6, die verwijst naar een assembly die is gericht op .NET Framework 4.5. Als u een project maakt dat is gericht op een eerdere versie van .NET, kunt u geen verwijzing in dat project instellen op een project of assembly die is gericht op een nieuwere versie.
Zie Framework-doeloverzichtvoor meer informatie.
Project-naar-projectverwijzingen
Project-naar-projectverwijzingen zijn verwijzingen naar projecten die assembly's bevatten; u voegt projectverwijzingen toe met behulp van het tabblad Projecten in het dialoogvenster Verwijzingsbeheer. Visual Studio kan een assembly vinden wanneer een pad naar het project wordt gegeven.
Wanneer u een project hebt dat een assembly produceert, moet u verwijzen naar het project en geen bestandsreferentie gebruiken. Het voordeel van een project-naar-projectverwijzing is dat er een afhankelijkheid ontstaat tussen de projecten in het buildsysteem. Het afhankelijke project wordt gebouwd als het is gewijzigd sinds de laatste keer dat het verwijzende project is gebouwd. Een bestandsverwijzing maakt geen build-afhankelijkheid, dus het is mogelijk om het verwijzende project te bouwen zonder het afhankelijke project te bouwen en de verwijzing kan verouderd raken. (Dat wil gezegd, het project kan verwijzen naar een eerder gebouwde versie van het project.) Dit kan ertoe leiden dat verschillende versies van één DLL vereist zijn in de bin map, wat niet mogelijk is. Wanneer dit conflict optreedt, wordt er een bericht weergegeven, zoals 'Waarschuwing: het afhankelijkheidsbestand' in project 'project' kan niet worden gekopieerd naar de uitvoeringsmap omdat het de verwijzing 'bestand' overschrijft.' Zie Problemen met verbroken verwijzingen oplossen en Procedure: Projectafhankelijkheden maken en verwijderenvoor meer informatie.
Notitie
Er wordt een bestandsverwijzing gemaakt in plaats van een project-naar-projectverwijzing als de doelversie van het ene project versie 4.5 is en de doelversie van het andere project versie 2, 3, 3.5 of 4.0 is.
Gedeelde projectverwijzingen
In tegenstelling tot de meeste andere projecttypen heeft een gedeeld project geen binaire uitvoer. In plaats daarvan wordt de code gecompileerd in elk project dat ernaar verwijst. Met gedeelde projecten kunt u algemene code schrijven waarnaar wordt verwezen door veel verschillende toepassingsprojecten. De code wordt gecompileerd als onderdeel van elk verwijzingsproject en kan compilerrichtlijnen bevatten om platformspecifieke functionaliteit in de gedeelde codebasis op te nemen. Voeg een verwijzing naar een gedeeld project toe op het tabblad Gedeelde projecten van het dialoogvenster Verwijzingsbeheer.
Bestandsverwijzingen
Bestandsverwijzingen zijn directe verwijzingen naar assembly's buiten de context van een Visual Studio-project. U maakt deze met behulp van het tabblad Bladeren van het dialoogvenster Verwijzingsbeheer. Gebruik een bestandsverwijzing wanneer u alleen een assembly of onderdeel hebt en niet het project dat het als uitvoer maakt.