İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • DevOps
  • NuGet Paketlerini C++ Projelerinde Düzenlemek: PackageReference Dönemi
Bulut Altyapı DevOps Geliştirici Araçları bağımlılık yönetimi, C++, CI/CD, NuGet, PackageReference, vcxproj, Visual Studio Aşkın KILIÇ 20/05/2026 2 Yorumlar

NuGet Paketlerini C++ Projelerinde Düzenlemek: PackageReference Dönemi

NuGet Paketlerini C++ Projelerinde Düzenlemek: PackageReference Dönemi
⏱️ 7 dk okuma📅 20 Mayıs 2026🔄 Güncelleme: 15 Temmuz 2026

Visual Studio’da C++ tarafında NuGet işi yıllardır biraz “idare eder” seviyesindeydi. Çalışıyordu, evet. Ama paket yönetimi dediğiniz şey, proje dosyasının içine gömülü, okunması kolay. CI/CD’de sürpriz çıkarmayan bir yapıda olmalıydı. İşin aslı şu ki, PackageReference bu açıdan bayağı önemli bir eşik.

📋 İçindekiler

  1. Benim kısa görüşüm şu: PackageReference güzel bir adım ama C++ dünyasının tamamını tek başına kurtarmaz; doğru araç kombinasyonu hâlâ en kritik konu.

    Bunu Türkiye’deki şirketler açısından nasıl okumalıyız?

    Bence Türkiye’deki şirketlerin büyük kısmı bu tür yeniliklere iki uçtan yaklaşıyor: ya hiç dokunmuyorlar ya da doğrudan üretime taşıyorlar… İkisinin de sıkıntısı var tabiî ki! Kurumsal müşterilerimde gördüğüm kadarıyla en sağlıklı yol pilot + ölçüm + kademeli yayılım oluyor.

    Çok konuştum, örnekle göstereyim.

    Tam burada FinOps bakışı da devreye giriyor aslında — evet konu paket yönetimi ama dolaylı maliyet etkisi var. Restore süresi uzarsa pipeline süresi uzuyor, pipeline uzarsa çalışan saati boşa gidiyor (özellikle büyük takımlarda). TL bazında düşününce küçük görünen iyileştirme ay sonunda fena hâlde fark yaratabiliyor.

    Yanı, Eğer bütçe dar işe ilk yatırımınız eğitim olsun derim ben.

    Yanı ekipte herkes yeni modeli anlasın, package migration nasıl yapılıyor bilsin, sonra örnek bir modül üzerinde deneyin… Böyle giderse risk azalır.

    İşte, bir de şu var: Azure DevOps kullanan ekiplerde artifact akışıyla package restore davranışını birlikte düşünmek lazım; yoksa sorun paket sistemi sanılır ama kök sebep çoğu zaman pipeline tasarımı çıkar.

    Migrasyon için pratik yol haritası

    1. Pilot olarak düşük riskli bir.vcxproj seçin.
    2. packages.config bağımlılıklarını listeleyip birebir karşılaştırın.
    3. Create/restore adımlarını lokal makinede ve build agent’ta test edin.
    4. Sürüm sabitleme ve conditional reference ihtiyacınızı kontrol edin.
    5. Paketlerin gerçekten native mi yoksa binary SDK mı olduğuna karar verin.

    Sahada dikkat ettiğim birkaç ince nokta

    İlk denediğimde aldığım hata oldukça öğreticiydi: restore sonrası bazı referanslar görünmüyor sandım meğer target framework/condition eşleşmesi yüzünden asset seçimi beklediğim gibi çalışmıyormuş. Sız hiç denediniz mi? Kısacası sorun araçta değilmiş; benim MSBuild koşullarımı biraz fazla özgüvenle yazmamdaymış! Çözümü sadeleştirince düzeldi.

    Aynı şeyi geçen mart ayında Gebze’deki bir otomotiv tedarikçisiyle yaptığımız çalışmada da gördük. Platform bazlı farklı paketler tanımlayınca proje dosyasının okunabilirliği düştü (evet, doğru duydunuz). Kontrollü yazınca gayet işler hâle geldi.. Hani ne farkı var diyorsunuz, değil mi? Yanı esneklik iyi fakat disiplin istemesi kötü haber değil; aksine profesyonel kullanımın bedeli bu biraz.

    Neyse uzatmayalım: Eğer bugün yeni bir native proje açıyorsanız ve NuGet’i sadece binary dağıtım aracı gibi görüyorsanız PackageReference denenebilir bir yol sunuyor demektir. Ama mevcut büyük çözümleri taşırken acele etmeyin… Bazen “yenilik” dediğimiz şey sırf geçiş maliyetini artırabiliyor!

    Nereden başlamalı?

    Bence, Lafı gevelemeden söyleyeyim: önce kendi dependency haritanızı çıkarın. Hangi paket gerçekten gerekli? Hangisi transitif geliyor? Hangisi zaten vcpkg ile daha doğru yönetilir? Bu üç soruya net cevap vermeden migrasyona girmek pek akıllıca olmazdı (ki bu çoğu kişinin gözünden kaçıyor)

    • Küçük proje: Doğrudan PackageReference deneyin ve sonuçları ölçün. (bu kritik)
    • Büyük kurum: Pilot uygulama + CI testi + sürüm politikası belirleyin.
    • Saf native kütüphane: Önce vcpkg’ye bakın, sonra gerekirse PackageReference düşünün. (bu kritik)
    💡 Bilgi: Eğer ekipte hem.NET hem C++ geliştiricileri varsa ortak dependency dili oluşturmak ciddi zaman kazandırır.

    Ben bunu Azure DevOps pipeline’larında defalarca gördüm; standardizasyon küçük görünür ama etki büyüktür.

    Sıkça Sorulan Sorular

    C++ projelerinde PackageReference zorunlu mu?

    Hayır, zorunlu değil. Hani modern seçeneklerden biri olarak geliyor. Mevcut projeler packages.config ile devam edebilir, ama yeni projelerde bence değerlendirmeye değer.

    C++ kütüphaneleri için vcpkg yerine kullanılmalı mı?

    Düz cevap: hayır. Native library yönetiminde vcpkg hâlâ daha özel ve güçlü. PackageReference işe daha çok NuGet tabanlı binary’lerde ya da hibrit senaryolarda anlam kazanıyor,. Kullanım alanı biraz farklı.

    Bunu üretimde hemen kullanmak güvenli mi?

    Bence, Aslında daha çok deneysel aşamada olduğu için önce test ortamında denemenizi öneririm. Küçük pilotlarla başlamak, tecrübeme göre, çoğu zaman daha güvenli oluyor.

    .NET ile aynı solution içinde fayda sağlar mı?

    Evet, hatta en güçlü taraflarından biri bu olabilir. Mesela hem.NET hem C++ projelerinde benzer dependency modeli kullanmak bakım yükünü azaltıyor (yanlış duymadınız). Açıkçası bu, ekipler için bayağı rahatlatıcı olabiliyor.

    Kaynaklar ve İleri Okuma

    Microsoft Learn — Package references in project files

    Microsoft Learn — Migrate from packages.config to PackageReference

    Tuhaf ama, GitHub — vcpkg Resmî Deposu

    İlgili Yazılarımızdan Bazıları

    NuGet Paket Budaması: Daha Temiz.NET Bağımlılıkları

    🤖Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
    Aşkın KILIÇ
    Aşkın KILIÇYazar

    20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

    AZ-305AZ-104AZ-500AZ-400DP-203AI-102

    İlgili Yazılar

    GitHub Copilot ile C++ İteratif Build'lerinizi Hızlandırın
    GitHub Copilot ile C++ İteratif Build'lerinizi Hızlandırın18 Tem 2026
    vcpkg ve Copilot CLI ile C++ Bağımlılık Kurulumu
    vcpkg ve Copilot CLI ile C++ Bağımlılık Kurulumu21 Tem 2026
    Copilot Uygulama Metrikleri Artık Tüm Rapor Kırılımlarında
    Copilot Uygulama Metrikleri Artık Tüm Rapor Kırılımlarında29 Tem 2026
    Agent Skills for .NET Kararlı Sürümde: Uzmanlık Artık Paketli
    Agent Skills for .NET Kararlı Sürümde: Uzmanlık Artık Paketli10 Tem 2026

    Bu içerik işinize yaradı mı?

    Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

    YouTube GitHub

    Haftalık Bülten

    Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket bağımlılık yönetimi C++ CI/CD NuGet PackageReference vcxproj Visual Studio
Önceki yazı

Model Router Evals: Doğru Modeli Seçtiğini Nasıl Kanıtlarsın?

Sonraki yazı

Kubernetes v1.36: CCM Route Sync Metriği Neyi Ele Veriyor?

İlginizi Çekebilir

CodeQL 2.26.3: Actions Sorguları ve JavaScript Modellemesi
Aşkın KILIÇ 0

CodeQL 2.26.3: Actions Sorguları ve JavaScript Modellemesi

20/08/2026
MSSQL v1.45: SQL Formatter, Azure SQL Provisioning ve
Aşkın KILIÇ 0

MSSQL v1.45: SQL Formatter, Azure SQL Provisioning ve

20/08/2026
SQL Server Express'ten Azure SQL Free Tier'a Geçiş
Aşkın KILIÇ 0

SQL Server Express’ten Azure SQL Free Tier’a Geçiş

20/08/2026

2 comments

comments user
Burcu Ç. 20/05/2026 18:39

C++ tarafında NuGet her zaman biraz “kötü çocuk” muamelesi gördü, PackageReference ile işlerin düzeleceğini umuyorum. CI/CD pipeline’larında packages.config yüzünden yediğimiz hatalar saymakla bitmiyordu. Bu arada farklı bir konu ama SDK geçişlerini merak edenler için şu yazı da değerliydi: Azure SDK for Rust GA: Beta’dan Stabil Üretime Geçiş — https://www.askinkilic.com.tr/azure-sdk-for-rust-ga-betadan-stabil-uretime-gecis/

comments user
Sibel V. 20/05/2026 21:39

C++ tarafında NuGet hep biraz üvey evlat muamelesi gördü, packages.config dönemini yaşayanlar bilir ne kadar can sıkıcıydı. PackageReference geçişi özellikle büyük projelerde fark yaratıyor mu, deneyimleriniz nasıl oldu?

Bu arada şu yazınız da güzeldi: Prompt Injection’ı Durdurmak: Agent Framework’te FIDES — https://www.askinkilic.com.tr/prompt-injectioni-durdurmak-agent-frameworkte-fides/

Yorumlar kapalı.

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • CodeQL 2.26.3: Actions Sorguları ve JavaScript Modellemesi
    20/08/2026 CodeQL 2.26.3: Actions Sorguları ve JavaScript Modellemesi
  • MSSQL v1.45: SQL Formatter, Azure SQL Provisioning ve
    20/08/2026 MSSQL v1.45: SQL Formatter, Azure SQL Provisioning ve
  • SQL Server Express'ten Azure SQL Free Tier'a Geçiş
    20/08/2026 SQL Server Express’ten Azure SQL Free Tier’a Geçiş
  • GitHub Copilot App: My Work ile İşlerini Yönetmek
    19/08/2026 GitHub Copilot App: My Work ile İşlerini Yönetmek
  • VS Code Python Environments Eklentisi Genel Kullanıma Açıldı
    19/08/2026 VS Code Python Environments Eklentisi Genel Kullanıma Açıldı
  • Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
    11/04/2026 Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
  • GitHub Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı
    07/04/2026 GitHub Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • GitHub Copilot Cloud Agent İçin Runner Kontrolü: Kurumsal Düzen
    03/04/2026 GitHub Copilot Cloud Agent İçin Runner Kontrolü: Kurumsal Düzen
  • ASP.NET Core 2.3 İçin Saat İşliyor: Ne Yapmalı?
    07/04/2026 ASP.NET Core 2.3 İçin Saat İşliyor: Ne Yapmalı?
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

SİZİN İÇİN DERLEDİK

CodeQL 2.26.3: Actions Sorguları ve JavaScript Modellemesi
Geliştirici Araçları Güvenlik & Kimlik

CodeQL 2.26.3: Actions Sorguları ve JavaScript Modellemesi

20/08/2026 Aşkın KILIÇ
MSSQL v1.45: SQL Formatter, Azure SQL Provisioning ve
DevOps Geliştirici Araçları Microsoft Azure

MSSQL v1.45: SQL Formatter, Azure SQL Provisioning ve

20/08/2026 Aşkın KILIÇ
SQL Server Express'ten Azure SQL Free Tier'a Geçiş
Bulut Altyapı Geliştirici Araçları Microsoft Azure

SQL Server Express’ten Azure SQL Free Tier’a Geçiş

20/08/2026 Aşkın KILIÇ
GitHub Copilot App: My Work ile İşlerini Yönetmek
Geliştirici Araçları Yapay Zeka

GitHub Copilot App: My Work ile İşlerini Yönetmek

19/08/2026 Aşkın KILIÇ
VS Code Python Environments Eklentisi Genel Kullanıma Açıldı
Bulut Altyapı Geliştirici Araçları

VS Code Python Environments Eklentisi Genel Kullanıma Açıldı

19/08/2026 Aşkın KILIÇ
Microsoft, 2026 Gartner Cloud-Native Platform Raporunda
Bulut Altyapı Microsoft Azure Yapay Zeka

Microsoft, 2026 Gartner Cloud-Native Platform Raporunda

19/08/2026 Aşkın KILIÇ
Azure Cosmos DB VS Code Eklentisi: Ajanlar İçin Yeni Araçlar
Bulut Altyapı Geliştirici Araçları Yapay Zeka

Azure Cosmos DB VS Code Eklentisi: Ajanlar İçin Yeni Araçlar

19/08/2026 Aşkın KILIÇ
Canvases: Ajanlı Copilot Akışlarını Görünür Kılan Katman
Geliştirici Araçları Yapay Zeka

Canvases: Ajanlı Copilot Akışlarını Görünür Kılan Katman

18/08/2026 Aşkın KILIÇ
Windows Terminal Preview 1.25: Yeni Ayarlar ve Kitty Desteği
Bulut Altyapı Geliştirici Araçları

Windows Terminal Preview 1.25: Yeni Ayarlar ve Kitty Desteği

18/08/2026 Aşkın KILIÇ
Azure Pipelines'a Apple Silicon ve Xcode 27 Geldi
Bulut Altyapı DevOps

Azure Pipelines’a Apple Silicon ve Xcode 27 Geldi

18/08/2026 Aşkın KILIÇ
BlockOnPossibleDataLoss=True: Neden Dostunuz?
DevOps Geliştirici Araçları Güvenlik & Kimlik Microsoft Azure

BlockOnPossibleDataLoss=True: Neden Dostunuz?

18/08/2026 Aşkın KILIÇ
TypeScript 6.0 RC Duyuruldu: 7.0'a Hazırlık Sürümü
Geliştirici Araçları Kurumsal Teknoloji

TypeScript 6.0 RC Duyuruldu: 7.0’a Hazırlık Sürümü

17/08/2026 Aşkın KILIÇ

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps Azure Functions Azure OpenAI azure sdk Azure SQL bulut bilişim C++ CI/CD copilot Copilot CLI DevOps DevSecOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu Microsoft Agent Framework Microsoft Azure Microsoft Foundry MSVC otomasyon performans Pull Request Python RAG SEO uyumlu verimlilik veri yönetimi Visual Studio VS Code yapay zeka yapay zeka ajanları Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 339 yazı 🏗️ Bulut Altyapı 280 yazı 🤖 Yapay Zeka 240 yazı 🔧 DevOps 198 yazı ☁️ Microsoft Azure 186 yazı 🔒 Güvenlik & Kimlik 161 yazı 🏢 Kurumsal Teknoloji 65 yazı 📊 Veri & Analitik 57 yazı 🐳 Konteyner & Kubernetes 47 yazı 📧 Microsoft 365 21 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← Model Router Evals: Doğru Mode...
    Kubernetes v1.36: CCM Route Sy... →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS