Visual Studio'de Çalışırken Yeniden Yükleme ile çalışan kod yazma ve hata ayıklama (C#, Visual Basic, C++)

Çalışırken Yeniden Yükleme daha önce Visual Studio belgelerinde ve bazı eski kullanıcı arabirimi metinlerinde Düzenle ve Devam Et olarak biliniyordu.

Visual Studio 2022'den başlayarak, Visual Studio'daki Çalışırken Yeniden Yükleme deneyimi hem yönetilen .NET hem de yerel C++ uygulamalarında çalışır. Üzerinde çalıştığınız uygulamanın türü ne olursa olsun, Çalışırken Yeniden Yükleme amacı, düzenlemeler arasında mümkün olduğunca çok uygulama yeniden başlatması kaydederek uygulamaların yeniden derlenmesi, yeniden başlatılması ve uygulamanın içinde bulunduğunuz önceki konuma yeniden gidilmesi için harcadığınız süreyi azaltarak daha üretken çalışmanızı sağlamaktır.

Uygulamanızın kod dosyalarını düzenlemenizi ve kod değişikliklerini Çalışırken Yeniden Yükleme olarak da bilinen çalışan uygulamaya hemen uygulamanızı sağlayarak üretkenliği artırırız. Değişiklikleriniz uygulandıktan sonra, uygulamanın kendisinde bir eylem gerçekleştirerek (veya bir süreölçer aracılığıyla vb.) kodunuzu yeniden yürüterek ve değişiklikleri hemen görün; kesme noktaları aracılığıyla uygulamanın duraklatılması gerekmez!

Çalışan kodu Çalışırken Yeniden Yükleme ile güncelleştirme

  1. Desteklenen bir uygulama türünü temel alan bir proje açın. Bkz. .NET ve C++ desteklenen uygulamalar.

  2. F5 veya destekleniyorsa Ctrl+F5kullanarak uygulamayı ekli hata ayıklayıcıyla başlatın.

  3. Bir kod dosyası açın ve kodu değiştirin.

  4. Çalışırken Yeniden Yükleme Çalışırken Yeniden Yükleme icon. düğmesini kullanarak kod değişikliklerini uygulayın veya ALT+F10 tuşlarına basın.

    Çalışırken Yeniden Yükleme'un ekran görüntüsü.

Kullanıcı arabirimindeki değişiklikleri görmek için kodun yeniden yürütülmesi gerekir. Örneğin, bir düğmenin arka planındaki kod yeniden yürütülmelidir veya bir süreölçer aracılığıyla belirli bir aralıkta tetiklenen kod. Başka bir örnek olarak, ASP.NET Core MetadataUpdateHandler işlevselliği nedeniyle otomatik tarayıcı yenilemeyi destekler.

.NET uygulamaları için destek

  • 2022 Visual Studio kullanarak ve uygulamanızı hata ayıklayıcı ile başlatırken temel Çalışırken Yeniden Yükleme deneyimi çoğu .NET uygulaması ve çerçeve sürümüyle çalışır. Bu destek .NET Framework, .NET Core ve .NET 5+ (hem C# hem de Visual Basic için) içerir. Bu senaryodaki beklenti, hata ayıklayıcısını kullanıyorsanız Çalışırken Yeniden Yükleme kullanabileceğinizi varsayın ve deneyin!
  • 2022 Visual Studio kullanırken ancak hata ayıklayıcısını kullanmadığınızda (örneğin, uygulamayı başlatmak için CTRL-F5 kullanma), çoğu .NET 6 uygulama türünü hedeflerken Çalışırken Yeniden Yükleme kullanılabilir. Bu senaryoda, 6+ .NET'i hedeflemeyen uygulamalar (yani, 5 veya altını hedefleyenler) "hata ayıklayıcı olmadan" senaryosunu desteklemez ve Çalışırken Yeniden Yükleme desteği almak için hata ayıklayıcıyı kullanmalıdır.
  • 2022 Visual Studio .NET 6+ uygulamasıyla kullanıldığında çoğu senaryo desteklenir. Bu destek, daha önce bahsedilen yeni "hata ayıklayıcı yok" özelliğiyle sınırlı değildir. Ayrıca Blazor projelerine yönelik sıcak yeniden yükleme desteği ve genel olarak herhangi bir ASP.NET Core uygulamasında Razor dosyalarını düzenleme ile CSS Çalışırken Yeniden Yükleme gibi diğer yeni özellikler de içermektedir. Visual Studio 2022'yi ve .NET 6'yi hedefleyen uygulamaları birlikte kullanmak size en güçlü Çalışırken Yeniden Yükleme deneyimi sağlar.

Aşağıdaki tabloda, proje türüne göre hata ayıklayıcı ekli (F5) ve hata ayıklayıcısı (Ctrl+F5) olmadan .NET Çalışırken Yeniden Yükleme desteklemek için gereken en düşük .NET sürümü gösterilmektedir. Visual Studio 2022 sürüm 17.8 veya üzeri gereklidir.

Uygulama türü F5 Ctrl+F5 MetadataUpdateHandler desteği
Konsol .NET 6 .NET 6
Linux/macOS üzerinde çalıştırma
(Docker ve WSL)
.NET 8 .NET 6 .NET 8
Arm64'te çalışıyor .NET 7 .NET 7 .NET 7
WPF (Windows Presentation Foundation) .NET 6 .NET 6
WinForms .NET 6 .NET 6
ASP.NET .NET 6 .NET 6
Blazor Sunucusu .NET 6 .NET 6 .NET 6
Blazor WebAssembly .NET 6 .NET 6 .NET 6
MAUİ
(WinUI/Android/iOS)
.NET 6 -- --

Çalışırken Yeniden Yükleme ile yapabileceğiniz düzenlemelerin türleri, uygulamayı başlatmak için kullandığınız yöntemle (F5 veya Ctrl+F5) değil çalışma zamanı ve derleyici sürümü tarafından belirlenir.

Aşağıdaki bölümlerde ek ayrıntılar sağlıyoruz.

.NET Framework uygulamaları için destek

Visual Studio 2022'yi kullanırken ve uygulamanızı hata ayıklayıcıyla başlatırken, temel Çalışırken Yeniden Yükleme deneyimi çoğu .NET uygulaması ve çerçeve sürümüyle çalışır. Bu destek .NET Framework, .NET Core ve .NET 5+ (hem C# hem de Visual Basic için) içerir. Bu senaryodaki beklenti, hata ayıklayıcısını kullanıyorsanız Çalışırken Yeniden Yükleme kullanabileceğinizi varsayın ve deneyin!

C++ uygulamaları için destek

Visual Studio 2022'yi kullanırken ve uygulamanızı hata ayıklayıcıyla başlatırken, Çalışırken Yeniden Yükleme düğmesini kullanarak hata ayıklayıcıda (F5) çalışırken yerel bir C++ uygulamasını hot reload yapmak mümkün. Çalışırken Yeniden Yükleme, CMake ve OpenFolder projeleri kullanılarak oluşturulan uygulamalar için de desteklenir.

Projenizin Çalışırken Yeniden Yükleme desteklemesi için aşağıdaki seçeneklerin ayarlanması gerekir:

  • Project > Properties > C/C++ > Genel >Debug Bilgi Biçimi "Düzenleme ve Devam Etmek için Program Veritabanı /ZI" olarak ayarlanmalıdır
  • Project > Properties > Bağlayıcı > Genel >Enable Artımlı Bağlama "Evet /INCREMENTAL" olarak ayarlanmalıdır

Desteklenen düzenlemeler için bkz. C++ Desteklenen Kod Değişiklikleri.

Visual Studio 2022, hata ayıklayıcıyı kullanırken bir .NET veya .NET Framework uygulamasıyla

Visual Studio 2022'yi kullanırken ve uygulamayı hata ayıklayıcıyla başlatırken, Çalışırken Yeniden Yükleme çoğu uygulama çerçevesiyle çalışır.

.NET ve yönetilen Visual Studio hata ayıklayıcısını kullandığınız her yerde temel Çalışırken Yeniden Yükleme desteği almanız gerekir. Bu durum, Azure İşlevleri gibi projelerin bile bu senaryoda harika çalıştığı anlamına gelir.

Not

Varsayılan olarak, bazı projeler, Çalışırken Yeniden Yükleme'u desteklemeyen karma modda hata ayıklamayı kullanır. Proje > Özellikleri > Hata Ayıklama > Hata ayıklama başlatma profilleri UI'sini aç > Yerel kod hata ayıklamayı etkinleştir ayarını yanlış (false) olarak ayarlayarak proje ayarları içinde bu ayarı değiştirebilirsiniz.

Visual Studio 2022 ile bir .NET uygulaması, ancak hata ayıklayıcıyı kullanmadan.

Çalışırken Yeniden Yükleme, çoğu .NET 6+ uygulama türünü hedeflerken hata ayıklayıcı olmadan kullanılabilir.

Bu özellik .NET 6+ için özeldir. .NET 6 ve üzerini hedeflemeyen (yani .NET 5 veya altını hedefleyen) bu uygulamalar, "hata ayıklayıcı kullanılmadan" senaryolarını desteklemez ve Çalışırken Yeniden Yükleme işlevselliğine erişmek için hata ayıklayıcı kullanmak zorundadır.

Ayrıca, şu anda tüm proje türleri "hata ayıklayıcı yok" senaryoyu desteklemez, bkz. .NET uygulamaları için Support.

.NET 6+ uygulamasıyla Visual Studio 2022

Hem Visual Studio 2022 kullanıyor hem de 6+ .NET hedefleyen uygulamalar üzerinde çalışıyorsanız, en şık ve yetenekli Çalışırken Yeniden Yükleme deneyiminin avantajlarından yararlanırsınız.

Bu senaryoda desteklenen durumlar şunlardır:

  • Blazor uygulamaları (Sunucu ve WebAssembly)
  • Hem Blazor hem de normal ASP.NET Core web sitelerinde Razor dosyalarını düzenleme
  • CSS Çalışırken Yeniden Yükleme (CSS Sıcak Yükleme)
  • XAML Çalışırken Yeniden Yükleme
  • Hata ayıklayıcı olmadan uygulamaları çalıştırırken Çalışırken Yeniden Yükleme desteği (önceden daha ayrıntılı olarak açıklandığı gibi)

6+ .NET hedeflediyseniz, gelecek Visual Studio 2022 güncelleştirmelerinde ve .NET özellik bantlarında ve ana sürümlerde iyileştirmeler almaya devam edersiniz.

Desteklenen ASP.NET Core Senaryoları

Temel Çalışırken Yeniden Yükleme deneyimi birçok ASP.NET senaryo için desteklenir. En yaygın olarak kullanılabilen özellik, çoğu web uygulaması türü için arka planda kod ve diğer .NET sınıf dosyalarını değiştirme özelliğidir. Bu özellik, Visual Studio hata ayıklayıcısını kullanırken çalışır ve Çalışırken Yeniden Yükleme'un daha önce mevcut olduğu her yerde bulunur. Daha ayrıntılı yönergeler için bkz. ASP.NET Core için .NET Çalışırken Yeniden Yükleme desteği.

.NET 6+ sürümünü hedefleyen ASP.NET Core geliştiriciler için .NET'ın alt sürümleri için ek özellikler sağlanmaz. Bu özellikler şunlardır:

  • cshtml : Razor CSHTML dosyasını düzenlemek birçok düzenleme türünü destekler.
  • Tarayıcı Yenilemesi: Razor dosyasını düzenlemek, hata ayıklama sırasında web tarayıcınızdaki değişiklikleri otomatik olarak günceller. Bu özellik daha önce yalnızca uygulamayı hata ayıklayıcı olmadan başlatırken kullanılabilirdi.
  • CSS Çalışırken Yeniden Yükleme: Uygulama çalışırken CSS dosyalarını değiştirebilirsiniz ve siz yazarken değişiklikler çalışan uygulamaya hemen uygulanır.
  • No Debugger: Web uygulamanızı hata ayıklayıcı olmadan başlatmak için Visual Studio kullanırken Çalışırken Yeniden Yükleme destek alırsınız (CTRL-F5).

Desteklenen .NET değişiklikleri

.NET Çalışırken Yeniden Yükleme deneyimi debugger ve C# derleyicisi (Roslyn) tarafından desteklenir. Roslyn tarafından desteklenen düzenleme ve Desteklenen kod değişiklikleri (C# ve VB) şu anda desteklenen düzenleme türlerini ve gelecekteki olası iyileştirmeleri listelemektedir.

Desteklenen .NET Framework değişiklikleri

.NET Çalışırken Yeniden Yükleme deneyimi debugger ve C# derleyicisi tarafından desteklenir. Desteklenen kod değişiklikleri (C# ve VB) şu anda desteklenen düzenleme türlerini ve gelecekteki olası geliştirmeleri listeler.

Desteklenmeyen .NET ve .NET Framework projeleri

Çalışırken Yeniden Yükleme bazı proje yapılandırmalarında kullanılamaz:

  • hata ayıklayıcı olmadan Visual Studio kullanıyorsanız Çalışırken Yeniden Yükleme yalnızca 6+ .NET hedefleyen .NET uygulamalarda çalışır.
  • Uygulamanızı çalıştırmak için Visual Studio hata ayıklayıcısını kullanıyorsanız ancak ayarlarda Enable Çalışırken Yeniden Yükleme and Edit and Continue when debugging devre dışı bırakmışsanız Çalışırken Yeniden Yükleme desteklenmez.
  • Sürüm veya özel derleme yapılandırmaları desteklenmez. Projeniz Debug derleme yapılandırmasını kullanmalıdır.
  • F# veya .NET Native projesini hedeflediyseniz.
  • .NET Çalışırken Yeniden Yükleme'da bazı başlangıç veya derleme iyileştirmeleri desteklenmemektedir. Örneğin, projenizin hata ayıklama profili aşağıdaki yollarla yapılandırılmışsa .NET Çalışırken Yeniden Yükleme desteklenmez:
    • Kırpma projeniz için etkinleştirildi. Örneğin, hata ayıklama profili için proje dosyanızda PublishTrimmed True olarak ayarlanırsa desteklenmez.
    • ReadyToRun projeniz için etkinleştirildi. Örneğin, hata ayıklama profili için proje dosyanızda PublishReadyToRun True olarak ayarlanırsa desteklenmez.

Daha fazla bilgi için bkz. Desteklenmeyen senaryolar.

Çalışırken Yeniden Yükleme F için Desteklenmiyor#

F# kodunda hata ayıkladığınızda Çalışırken Yeniden Yükleme veya Düzenle ve Devam Et desteklenmez. Hata ayıklama oturumu sırasında F# kodunda düzenleme yapılabilir, ancak bundan kaçınılmalıdır. Kod değişiklikleri hata ayıklama oturumu sırasında uygulanmaz. Bu nedenle, hata ayıklarken F# kodunda yapılan tüm düzenlemeler, hata ayıklanan kodla eşleşmeyen kaynak koda neden olur.

Çalışırken Yeniden Yükleme'u yapılandırın

Çalışırken Yeniden Yükleme etkinleştirmek, devre dışı bırakmak veya yapılandırmak için bkz. Configure Edit and Continue.

Uyarı iletisi

Aşağıdaki iletişim kutusunu görürseniz, Çalışırken Yeniden Yükleme geçerli düzenlemeleri yeniden başlatmadan uygulayamaz. Uygulamayı yeniden derlemeyi ve değişiklikleri uygulamayı (yeniden başlatma) veya düzenlemeye devam etmeyi seçebilirsiniz. Yeniden oluşturursanız tüm uygulama durumu kaybolur. Düzenlemeye devam ederseniz, ek değişiklikler veya düzeltmeler Çalışırken Yeniden Yükleme yeniden çalışmasına neden olabilir.

Değişiklikleri uygula iletişim kutusunun ekran görüntüsü.

Değişiklikleri uygula iletişim kutusunun ekran görüntüsü.

İletişim kutusunda Değişiklikler uygulanamazsa her zaman yeniden derle seçeneğini belirlerseniz, geçerli Visual Studio oturumunda bir daha iletişim kutusunu görmezsiniz ve Visual Studio, iletişim kutusunu göstermek yerine otomatik olarak yeniden derleyip yeniden yükler.

Sorun giderme

Çalışırken Yeniden Yükleme beklendiği gibi çalışmıyorsa aşağıdakileri denetleyin:

  • Desteklenen bir uygulama ve senaryo çalıştırdığınızı doğrulayın. Bazı proje türleri, karma mod hata ayıklaması, iyileştirilmiş kod ve İşleme Ekle senaryoları Çalışırken Yeniden Yükleme desteklemez. Daha fazla bilgi için bkz. Desteklenmeyen senaryolar.
  • Uygulamanın Debug yapılandırması kullandığından ve Çalışırken Yeniden Yükleme Tools>Options içinde etkinleştirildiğinden emin olun>Debugging>.NET/C++ Çalışırken Yeniden Yükleme.
  • Çalışırken Yeniden Yükleme çıkışında daha fazla bilgi edinmek için Logging Verbosity değerini Detailed veya Diagnostic olarak ayarlayın.
  • Çıkış penceresini açın ve çıkış gösterimi bölümünde tanılama iletilerini gözden geçirmek için Çalışırken Yeniden Yükleme seçeneğini seçin.
  • Hata ayıklama sırasında bir satır salt okunur görünüyorsa, çağrı yığınında aktif bir deyim olabilir veya düzenleme programın yeniden başlatılmasını gerektirebilir.

Yaygın tanılamaların listesi için bkz. Çalışırken Yeniden Yükleme ve Düzenle ve Devam Et hata iletileri. Sorun devam ederse ve çıkışta net bir neden gösterilmiyorsa, Visual Studio ekibine geri bildirim göndermek için Sorun Bildir kullanın.

.NET Core'da yanıt sıkıştırma kullanıyorsanız response compression ile ilgili bilgilere bakın.