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

Visual Studio 2022'den başlayarak, Visual Studio'daki Çalışırken Yeniden Yükleme deneyimi hem yönetilen .NET hem de yerel C++ uygulamaları için ç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.

Bunu, 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ı mümkün hale getirerek gerçekleştiririz. 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++ tarafından desteklenen uygulamalar.

  2. F5 veya destekleniyorsa Ctrl+F5 tuşlarını kullanarak ekli hata ayıklayıcı ile uygulamayı başlatın.

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

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

    Screenshot of the Hot Reload button.

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

  • 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. Buna .NET Framework, .NET Core ve .NET 5+ dahildir (hem C# hem de Visual Basic için geçerlidir). Bu senaryodaki beklenti, hata ayıklayıcısını kullanıyorsanız Çalışırken Yeniden Yükleme kullanabileceğinizi varsayın ve deneyin!
  • Visual Studio 2022 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 uygulaması türünü hedeflerken Çalışırken Yeniden Yükleme kullanılabilir. Bu, .NET 6 'yi (.NET 5 veya üzeri) hedeflemeyen uygulamaların "hata ayıklayıcı yok" senaryoyu desteklemediği ve Çalışırken Yeniden Yükleme destek almak için hata ayıklayıcıyı kullanması gerektiği anlamına gelir.
  • Visual Studio 2022'yi bir .NET 6 uygulamasıyla kullanırken çoğu senaryo desteklenir. Bu, yukarıda bahsedilen yeni "hata ayıklayıcı yok" özelliğiyle sınırlı değildir. Ayrıca Blazor projelerini sık erişimli yeniden yükleme desteği ve daha genel olarak herhangi bir ASP.NET Core uygulamasında Razor dosyalarını düzenleme ve CSS Çalışırken Yeniden Yükleme gibi diğer yeni özellikleri de içerir. 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, Visual Studio 2022(17.8) desteği için gereken en düşük .NET sürümüne göre hangi projelerin .NET Çalışırken Yeniden Yükleme hata ayıklayıcısı ekli (F5) ve hata ayıklayıcısı eklenmemiş (Ctrl+F5) olduğu gösterilmektedir.

Uygulama türü F5 Ctrl+F5 MetadataUpdateHandler Destek
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 .NET 6 .NET 6
WinForms .NET 6 .NET 6
ASP.NET .NET 6 .NET 6
Blazor Server .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üzenleme 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, yukarıdaki özeti genişletecek ve daha fazla ayrıntıya ineceğiz.

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ı (F5) altında çalışırken yerel bir C++ uygulamasını çalışırken yeniden yükleyebilirsiniz. Ç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 şunları yapmanız gerekir:

  • Proje > Özellikleri > C/C++ > Genel >Hata Ayıklama Bilgileri Biçimi "Düzenleme ve Devam /ZIEtmek için Program Veritabanı" olarak ayarlanmalıdır
  • Proje > Özellikleri > Bağlayıcısı > Genel >Artımlı Bağlamayı Etkinleştir "Evet /INCREMENTAL" olarak ayarlanmalıdır

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

Hata ayıklayıcı kullanılırken .NET uygulamasıyla Visual Studio 2022

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'e sahip olduğunuz ve Visual Studio yönetilen 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

Bazı projeler, Çalışırken Yeniden Yükleme desteklemeyen varsayılan karma mod hata ayıklamasını kullanır. Proje ayarlarında, Proje > Özellikleri Hata Ayıklama Hata Ayıklama Hata Ayıklama > hata ayıklama başlatma profilleri kullanıcı arabirimi > Yerel kod hata ayıklamayı etkinleştir ayarını false olarak ayarlayarak bunu değiştirebilirsiniz>.

.NET uygulamasıyla Visual Studio 2022, ancak hata ayıklayıcısını kullanmaz

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

Bu özellik .NET 6+ için özeldir. .NET 6+'yı (.NET 5 veya üzeri) hedeflemeyen uygulamalar "hata ayıklayıcı yok" senaryoyu desteklemez ve Çalışırken Yeniden Yükleme işlevselliğine erişmek için hata ayıklayıcıyı kullanmalıdır.

Ayrıca, şu anda tüm proje türlerinin "hata ayıklayıcı yok" senaryoyu desteklemediğini unutmayın. Bkz . .NET uygulamaları için destek.

.NET 6+ uygulamasıyla Visual Studio 2022

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

Bu senaryoda desteklenir:

  • 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
  • XAML Çalışırken Yeniden Yükleme
  • Uygulamaları hata ayıklayıcı olmadan çalıştırırken destek Çalışırken Yeniden Yükleme (daha önce daha ayrıntılı olarak açıklandığı gibi)

.NET 6+ sürümünü hedeflerseniz, yaklaşan Visual Studio 2022 güncelleştirmelerinde ve .NET özellik bantlarında ve önemli sürümlerde iyileştirmeler almaya devam edersiniz.

Desteklenen ASP.NET Temel 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 daha önce kullanılabilir Çalışırken Yeniden Yükleme 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ştiricileri için, .NET'in 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ı Yenileme: Razor dosyasının düzenlenmesi, hata ayıklama sırasında web tarayıcınızdaki değişiklikleri otomatik olarak yeniler. 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.
  • Hata Ayıklayıcı Yok: 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, hata ayıklayıcı ve C# derleyicisi (Roslyn) tarafından desteklenir. Roslyn tarafından desteklenen düzenlemeler ve Desteklenen kod değişiklikleri (C# ve VB) şu anda desteklenen düzenleme türlerini ve gelecekteki olası iyileştirmeleri listeler.

Desteklenmeyen .NET projeleri

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

  • Visual Studio'yu hata ayıklayıcı olmadan kullanıyorsanız, Çalışırken Yeniden Yükleme yalnızca .NET 6+ sürümünü hedefleyen .NET uygulamalarında çalışır.
  • Uygulamanızı çalıştırmak için Visual Studio hata ayıklayıcısını kullanıyorsanız ancak ayarlarda devre dışı bırakmışsanız Enable Hot Reload and Edit and Continue when debugging Çalışırken Yeniden Yükleme desteklenmez.
  • Sürüm veya özel derleme yapılandırmaları desteklenmez. Projeniz derleme yapılandırmasını kullanmalıdır Debug .
  • F# veya .NET Native projesini hedef alıyorsanız.
  • Bazı başlatma veya derleme iyileştirmeleri .NET Çalışırken Yeniden Yükleme'da desteklenmez. Ö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 True olarak ayarlanırsa PublishTrimmed desteklenmez.
    • ReadyToRun projeniz için etkinleştirildi. Örneğin, hata ayıklama profili için proje dosyanızda True olarak ayarlanırsa PublishReadyToRun desteklenmez.

Diğer ayrıntılar için bkz . Desteklenmeyen senaryolar .

Çalışırken Yeniden Yükleme yapılandırma

Çalışırken Yeniden Yükleme etkinleştirmek, devre dışı bırakmak veya yapılandırmak için bkz. Düzenleme ve Devam'ı Yapılandırma.

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.

Screenshot of the apply changes dialog box

İletişim kutusunda Değişiklikler uygulanamayınca her zaman yeniden oluştur seçeneğini belirlerseniz, geçerli Visual Studio oturumunda iletişim kutusunu bir daha görmezsiniz ve Visual Studio iletişim kutusunu göstermek yerine otomatik olarak yeniden derlenir ve yeniden yüklenir.

Sorun giderme

Çalışırken Yeniden Yükleme oturumuyla ilgili ayrıntılı tanılama bilgileri için Çalışırken Yeniden Yükleme Çıktı penceresinin denetlenilmesi kesinlikle önerilir.

.NET Core'da yanıt sıkıştırma kullanıyorsanız yanıt sıkıştırma hakkındaki bilgilere bakın.