Başvuru Yöneticisi’ni kullanarak başvuru ekleme veya kaldırma

Sizin, Microsoft'un veya başka bir şirketin geliştirdiği bileşenlere başvuru eklemek ve bunları yönetmek için Başvuru Yöneticisi iletişim kutusunu kullanabilirsiniz. Evrensel Windows uygulaması geliştiriyorsanız projeniz otomatik olarak tüm doğru Windows SDK DLL'lerine başvurur. Bir .NET projesi oluşturduğunuzda, projeniz .NET SDK gibi ihtiyaç duyduğu bileşenlere otomatik olarak başvurur, ancak işlev eklerken başvuru eklemeniz gerekir. Bazı .NET API'leri, el ile eklemeniz gereken bileşenlerde kullanıma sunulur. COM bileşenlerine veya özel bileşenlere başvurular el ile eklenmelidir.

Başvuru Yöneticisi iletişim kutusu

Başvuru Yöneticisi iletişim kutusu, proje türüne bağlı olarak sol tarafta farklı kategoriler gösterir:

  • Framework ve Uzantılar alt gruplarıyla derlemeler (yalnızca.NET Framework)

  • COM , başvuru için kullanılabilen tüm COM bileşenlerini listeler

  • Projeler

  • Paylaşılan Projeler

  • Çekirdek ve Uzantılar alt gruplarıyla Windows. Nesne Tarayıcısı'nı kullanarak Windows SDK'larındaki veya uzantı SDK'larındaki başvuruları keşfedebilirsiniz.

  • Gözat, En Son alt grubuyla

    Not

    C++ projeleri geliştiriyorsanız Başvuru Yöneticisi iletişim kutusunda Gözat'ı göremeyebilirsiniz.

Başvuru ekleme

  1. Çözüm Gezgini, Başvurular veya Bağımlılıklar düğümüne sağ tıklayın ve bağlam menüsünden Proje Başvurusu Ekle, Paylaşılan Proje Başvurusu Ekle veya COM Başvurusu Ekle'yi seçin. (Proje düğümüne sağ tıklayıpBu seçenekler arasından da seçim yapmak için açılır menüden ekleyin .)

    Screenshot of the Add Reference dialog from the context menu in Solution Explorer.

    Başvuru Yöneticisi açılır ve kullanılabilir başvuruları gruba göre listeler.

    Screenshot of the Reference Manager dialog box in Visual Studio.

  2. Eklemek için bir başvuru seçin ve ardından Tamam'ı seçin.

    Not

    Aradığınız başvuruyu görmüyorsanız, başvuruyu bulmak için Gözat'ı seçin. (C++ projeleri geliştiriyorsanız göz atma seçeneğini göremeyebilirsiniz.)

Derlemeler sekmesi (yalnızca.NET Framework)

Not

.NET Core veya .NET 5 ve üzerini hedefleyen projeler için Derlemeler sekmesi kullanılamaz, çünkü bu projeler için derlemeler NuGet paketleri olarak eklenir veya belirli bir .NET sürümü hedeflenerek eklenir. Bir projede başvuruda bulunılan derlemeleri görmek için projedeki Bağımlılıklar düğümünü genişletin ve Çerçeveler'in altına bakın. Bağımlılıklar düğümünden, proje başvuruları eklemek veya kaldırmak için sağ tıklayabilir veya NuGet paketlerini yönetmek için NuGet paket tarayıcısını açabilirsiniz. NuGet belgelerindeki NuGet Paket Yöneticisi kullanarak Visual Studio'da paketleri yükleme ve yönetme bölümüne bakın.

.NET Framework projeleri için Derlemeler sekmesi, başvuru için kullanılabilen tüm .NET derlemelerini listeler. GaC'deki derlemeler çalışma zamanı ortamının bir parçası olduğundan Derlemeler sekmesi genel derleme önbelleğinden (GAC) hiçbir derlemeyi listelemez. GAC'de kayıtlı bir derlemeye başvuru içeren bir uygulamayı dağıtır veya kopyalarsanız, Yerel Kopyala ayarından bağımsız olarak derleme uygulamayla birlikte dağıtılmaz veya kopyalanır. Daha fazla bilgi için bkz . Projedeki başvuruları yönetme.

EnvDTE ad alanlarına (EnvDTE, , , EnvDTE90aEnvDTE90veya EnvDTE100) el ile başvuru eklediğinizde, EnvDTE80Özellikler penceresinde başvurunun Birlikte Çalışma Türlerini Ekle özelliğini Falseolarak ayarlayın. Bu özelliğin True olarak ayarlanması, eklenemez bazı EnvDTE özellikleri nedeniyle derleme sorunlarına neden olabilir.

Tüm masaüstü projeleri mscorlib'e örtük bir başvuru içerir. Visual Basic projeleri için örtük bir başvuru Microsoft.VisualBasiciçerir. Tüm projeler, başvuru listesinden kaldırılsa bile System.Core'a örtük bir başvuru içerir.

Derlemeler sekmesi iki alt sekmeden oluşur:

  1. Çerçeve , hedeflenen çerçeveyi oluşturan tüm derlemeleri listeler.

    .NET Core veya Evrensel Windows Platformu hedeflemeyen projeler için Çerçeve sekmesi, hedeflenen çerçeveden derlemeleri numaralandırır. Kullanıcının uygulamanın gerektirdiği tüm başvuruları eklemesi gerekir.

    Evrensel Windows projeleri varsayılan olarak hedeflenen çerçevedeki tüm derlemelere başvurular içerir. Yönetilen projelerde, Çözüm Gezgini içindeki References klasörünün altındaki salt okunur düğüm, çerçevenin tamamına başvuruyu gösterir. Buna göre, Çerçeve sekmesi çerçevedeki derlemelerin hiçbirini listelemez ve bunun yerine şu iletiyi görüntüler: "Tüm Framework derlemelerine zaten başvurulmuş. Çerçevedeki başvuruları keşfetmek için lütfen Nesne Tarayıcısı'nı kullanın."

  2. Uzantılar , dış bileşen ve denetim satıcılarının hedeflenen çerçeveyi genişletmek için geliştirdiği tüm derlemeleri listeler. Kullanıcı uygulamasının amacına bağlı olarak, bu derlemelere gerek duyulabilir.

    Uzantılar , aşağıdaki konumlarda kayıtlı derlemeler numaralandırılarak doldurulur:

    32 bit makine:

    • 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 bit makine:

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

    Ve [Target Framework Identifier] öğesinin eski sürümleri

    Örneğin, bir proje 32 bit bir makinede .NET Framework 4'i hedeflerse, Uzantılar\Microsoft.NETFramework\v4.0\AssemblyFoldersEx, \Microsoft.NETFramework\v3.5\AssemblyFoldersEx, \Microsoft.NETFramework\v3.0\AssemblyFoldersEx ve \Microsoft.NETFramework\v2.0\AssemblyFoldersEx altında kayıtlı derlemeleri numaralandırır.

Projenizin çerçeve sürümüne bağlı olarak listedeki bazı bileşenler gösterilmeyebilir. Bu durum aşağıdaki koşullar altında oluşabilir:

  • Son bir çerçeve sürümü kullanan bir bileşen, önceki bir sürümü hedefleyen bir projeyle uyumsuzdur.

    Bir projenin hedef çerçeve sürümünü değiştirme hakkında bilgi için bkz . Çerçeve hedeflemeye genel bakış.

  • .NET Framework'ün eski bir sürümünü kullanan bir bileşen, daha yeni bir .NET Framework'i hedefleyen projeyle uyumsuzdur.

.NET Framework sürümleri arasındaki sürüm uyumluluğu hakkında daha fazla bilgi için bkz . Sürüm uyumluluğu.

Aynı çözümdeki başka bir projenin çıkışlarına dosya başvuruları eklemekten kaçınmanız gerekir, çünkü bunu yapmak derleme hatalarına neden olabilir. Bunun yerine, projeden projeye başvurular oluşturmak için Başvuru Ekle iletişim kutusunun Projeler sekmesini kullanın. Bu uygulama, projelerinizde oluşturduğunuz sınıf kitaplıklarının daha iyi yönetilmesini sağlayarak ekip geliştirmeyi kolaylaştırır. Daha fazla bilgi için bkz . Bozuk başvurularla ilgili sorunları giderme.

Not

Bir projenin hedef çerçeve sürümü .NET Framework 4.5 veya üzeriyse ve diğer projenin hedef sürümü .NET Framework 2, 3, 3.5 veya 4.0 ise proje başvurusu yerine dosya başvurusu oluşturulur. .NET, .NET Framework ve .NET Core hakkında daha fazla bilgi için bkz . .NET (ve .NET Core) nedir?

Başvuru Ekle iletişim kutusunda bir derlemeyi görüntülemek için

  • Derlemeyi aşağıdaki konumlardan birine taşıyın veya kopyalayın:

    • Geçerli proje dizini. (Bu derlemeleri bulmak içinGözat sekmesi.)

    • Aynı çözümdeki diğer proje dizinleri. (Bu derlemeleri bulmak içinProjeler sekmesi.)

    - veya -

  • Görüntülenecek derlemelerin konumunu belirten bir kayıt defteri anahtarı ayarlayın:

    32 bit işletim sistemi için aşağıdaki kayıt defteri anahtarlarından birini ekleyin.

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

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

    64 bit işletim sistemi için, 32 bit kayıt defteri kovanına aşağıdaki kayıt defteri anahtarlarından birini ekleyin.

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

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

    <VersionMinimum> , geçerli olan en düşük çerçeve sürümüdür. VersionMinimum v3.0 ise<, AssemblyFoldersEx içinde belirtilen klasörler .NET Framework 3.0 ve üzerini hedefleyen projeler için geçerlidir.>

    <AssemblyLocation>, Başvuru Ekle iletişim kutusunda görünmesini istediğiniz derlemelerin dizinidir; örneğin, C:\MyAssemblies.

    Düğüm altında kayıt defteri anahtarının HKEY_LOCAL_MACHINE oluşturulması, tüm kullanıcıların derlemeleri Başvuru Ekle iletişim kutusunda belirtilen konumda görmesine olanak tanır. Düğüm altında kayıt defteri anahtarının HKEY_CURRENT_USER oluşturulması yalnızca geçerli kullanıcının ayarını etkiler.

    Başvuru Ekle iletişim kutusunu yeniden açın. Derlemeler .NET sekmesinde görünmelidir. Aksi takdirde, derlemelerin belirtilen AssemblyLocation dizininde bulunduğundan emin olun, Visual Studio'yu yeniden başlatın ve yeniden deneyin.

Projeler sekmesi

Projeler sekmesi, geçerli çözümdeki tüm uyumlu projeleri Çözüm alt sekmesinde listeler.

Bir proje, farklı bir çerçeve sürümünü hedefleyen başka bir projeye başvurabilir. Örneğin, .NET 8.0'ı hedefleyen ancak .NET 6.0 için oluşturulmuş bir derlemeye başvuran bir proje oluşturabilirsiniz. Ancak. .NET 6.0 projesi bir .NET Framework 8.0 projesine başvuramaz. Daha fazla bilgi için bkz . Çerçeve hedeflemeye genel bakış.

Paylaşılan Projeler sekmesi

Başvuru Yöneticisi iletişim kutusunun Paylaşılan Projeler sekmesinde paylaşılan projeye başvuru ekleyin. Paylaşılan Projeler , birçok farklı uygulama projesi tarafından başvurulan ortak kod yazmanızı sağlar.

Evrensel Windows sekmesi

Evrensel Windows sekmesi, Windows işletim sistemlerinin çalıştığı platformlara özgü tüm SDK'ları listeler. Bu sekmenin iki alt grubu vardır: Çekirdek ve Uzantılar.

Çekirdek alt grubu

Evrensel Windows uygulama projelerinin varsayılan olarak Evrensel Windows SDK'sına bir başvurusu vardır. Buna göre, Başvuru Yöneticisi'ndeki Core alt grubu Evrensel Windows SDK'sından derlemelerin hiçbirini listelemez.

Uzantılar alt grubu

Uzantılar , hedeflenen Windows platformunu genişleten kullanıcı SDK'larını listeler.

SDK, Visual Studio'nun tek bir bileşen olarak kabul ettiği dosyalar topluluğudur. Uzantılar sekmesinde, Başvuru Yöneticisi iletişim kutusunun çağrıldığı projeye uygulanan SDK'lar tek giriş olarak listelenir. Bir projeye eklendiğinde, tüm SDK içeriği Visual Studio tarafından kullanılır; böylece kullanıcının IntelliSense, araç kutusu, tasarımcılar, Nesne Tarayıcısı, derleme, dağıtım, hata ayıklama ve paketlemedeki SDK içeriklerinden yararlanmak için başka bir işlem gerçekleştirmesi gerekmez.

Uzantılar sekmesinde SDK'nızı görüntüleme hakkında bilgi için bkz. Yazılım Geliştirme Seti Oluşturma.

Not

Bir proje başka bir SDK'ya bağımlı bir SDK'ya başvuruda bulunursa, ikinci SDK'ya el ile başvuru eklemediğiniz sürece Visual Studio ikinci SDK'yı kullanmaz. Uzantılar sekmesinde bir SDK seçtiğinizde, Başvuru Yöneticisi iletişim kutusu ayrıntılar bölmesindeki bağımlılıkları listeleyerek SDK bağımlılıklarını belirlemenize yardımcı olur.

Proje türü uzantıları desteklemiyorsa, bu sekme Başvuru Yöneticisi iletişim kutusunda görünmez.

COM sekmesi

COM sekmesinde, başvuru için kullanılabilen tüm COM bileşenleri listelenir. Dahili bildirim içeren kayıtlı bir COM DLL öğesine başvuru eklemek isterseniz, önce DLL kaydını silin. Aksi takdirde, Visual Studio derleme başvuruyu yerel DLL yerine ActiveX denetimi olarak ekler.

Proje türü COM'yi desteklemiyorsa, sekme Başvuru Yöneticisi iletişim kutusunda görünmez.

Gözat

Dosya sistemindeki bir bileşene göz atmak için Gözat düğmesini kullanabilirsiniz.

Proje, farklı bir çerçeve sürümünü hedefleyen bir bileşene başvurabilir. Örneğin, .NET Framework 4.7.2'yi hedefleyen ancak .NET Framework 4'e başvuran bir uygulama oluşturabilirsiniz. Daha fazla bilgi için bkz . Çerçeve hedeflemeye genel bakış.

Bu taktik derleme hatalarına neden olabileceğinden, aynı çözümdeki başka bir projenin çıktılarına dosya başvuruları eklemekten kaçının. Bunun yerine, projeden projeye başvurular oluşturmak için Başvuru Yöneticisi iletişim kutusunun Çözüm sekmesini kullanın. Bu, projelerinizde oluşturduğunuz sınıf kitaplıklarının daha iyi yönetilmesini sağlayarak ekip geliştirmeyi kolaylaştırır. Daha fazla bilgi için bkz . Bozuk başvurularla ilgili sorunları giderme.

BIR SDK'ya göz atıp projenize ekleyemezsiniz. Yalnızca bir dosyaya (örneğin, derleme veya .winmd) göz atabilir ve bunu projenize ekleyebilirsiniz.

WinMD'ye dosya başvurusu yaparken beklenen düzen FileName.winmd>,< FileName.dll ve <FileName.pri>> dosyalarının birlikte yerleştirilmesidir.< Aşağıdaki senaryolarda bir WinMD'ye başvurursanız, tamamlanmamış bir dosya kümesi proje çıktı dizinine kopyalanır ve sonuç olarak derleme ve çalışma zamanı hataları oluşur.

  • Yerel bileşen: Yerel proje, her ayrık ad alanı kümesi için bir WinMD ve uygulamadan oluşan bir DLL oluşturur. WinMD'lerin farklı adları vardır. Bu yerel bileşen dosyasına başvururken, MSBuild benzer olmayan adlı WinMD'lerin tek bir bileşen haline geldiğini tanımaz. Bu nedenle, yalnızca aynı adlı FileName.dll> ve <FileName.winmd> kopyalanır ve çalışma zamanı hataları oluşur.< Bu sorunu geçici olarak çözmek için bir uzantı SDK'sı oluşturun. Daha fazla bilgi için bkz . Yazılım Geliştirme Seti Oluşturma.

  • Denetimlerin tüketilmesi: En azından bir XAML denetimi FileName.winmd>, FileName.dll,<< FileName.pri>>,< XamlName.xaml> ve imageName.jpg'lerden>< oluşur.< Proje oluşturulduğunda, dosya başvurusuyla ilişkili kaynak dosyaları projenin çıkış dizinine kopyalanır ve yalnızca <FileName.winmd>,< FileName.dll> ve< FileName.pri> kopyalanır. XamlName.xaml ve <ImageName.jpg>> kaynaklarının <eksik olduğunu gösteren bir derleme hatası günlüğe kaydedilir. Başarılı olmak için bu kaynak dosyalarını derleme ve hata ayıklama/çalışma zamanı için proje çıktı dizinine el ile kopyalayın. Bu sorunu geçici olarak çözmek için, Yazılım Geliştirme Seti Oluşturma'daki adımları izleyerek bir uzantı SDK'sı oluşturun veya proje dosyasını düzenleyerek aşağıdaki özelliği ekleyin:

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

    Not

    Özelliği eklerseniz, yapı daha yavaş çalışabilir.

En Son

Bütünleştirilmiş kodlar, COM, Windows ve Gözat her biri, projelere son eklenen bileşenlerin listesini listeleyen Bir Son sekmesini destekler.

Başvuru Yöneticisi iletişim kutusundaki arama çubuğu, odaktaki sekme üzerinde çalışır. Örneğin, Çözüm sekmesi odaktayken arama çubuğuna "Sistem" yazarsanız, çözüm "Sistem" içeren bir proje adından oluşmadığı sürece arama hiçbir sonuç döndürmez.

Başvuruyu kaldırma

Kullanılmayan Başvuruyu Kaldır menü öğesini kullanarak Visual Studio'da SDK stili projeleri için kullanılmayan başvuruları kaldırabilirsiniz.

Screenshot of the Remove Unused Reference dialog from the context menu in Solution Explorer.

Daha fazla bilgi için bkz . Kullanılmayan başvuruları kaldırma.