Aracılığıyla paylaş


ASP.NET Core için .NET Anında Yeniden Yükleme desteği

.NET Çalışırken Yeniden Yükleme, stil sayfalarında yapılan değişiklikler de dahil olmak üzere kod değişikliklerini, uygulamayı yeniden başlatmadan ve uygulama durumunu kaybetmeden çalışan bir uygulamaya uygular. Hot Reload, .NET 6 veya sonraki sürümlerdeki tüm ASP.NET Core projelerinde desteklenir.

Genellikle, güncelleştirilmiş kod aşağıdaki koşullarla geçerli olacak şekilde yeniden çalıştırılır:

  • Bazı başlangıç mantığı yalnızca bir kez çalıştırılır:
    • Kod güncelleştirmesi bir satır içi ara yazılım temsilcisine yapılmadığı sürece ara yazılım.
    • Yapılandırılmış hizmetler.
    • Kod güncelleştirmesi bir yol işleyici temsilcisine (örneğin, OnInitialized) yönelik olmadığı sürece yol oluşturma ve yapılandırma.
  • UygulamalardaBlazor, çerçeve bir Razor bileşenin otomatik olarak işlenmesini tetikler.
  • MVC ve Razor Sayfalar uygulamalarında, Anında Yeniden Yükleme otomatik olarak tarayıcının yenilenmesini tetikler.
  • Bir Razorbileşen parametresi özniteliğinin kaldırılması, bileşenin yeniden yenilenmesine neden olmaz. Uygulamanın yeniden başlatılması gerekir.

Desteklenen senaryolar hakkında daha fazla bilgi için bkz . Desteklenen kod değişiklikleri (C# ve Visual Basic).

Blazor WebAssembly

Blazor WebAssembly Anında Yeniden Yükleme aşağıdaki kod değişikliklerini destekler:

  • Yeni türler.
  • İç içe sınıflar.
  • Değişkenleri, ifadeleri ve deyimleri ekleme, kaldırma ve düzenleme gibi yöntem gövdelerinde yapılan çoğu değişiklik.
  • Lambda ifadelerinin ve yerel işlevlerin gövdelerinde yapılan değişiklikler.
  • Mevcut türlere statik ve örnek yöntemleri ekleme.
  • Var olan türlere statik ve örnek alanları, olaylar ve özellikler ekleme.
  • Mevcut yöntemlere statik lambda ekleme.
  • Mevcut yöntemlere, önceden this'i yakalayan this'ı yakalayan lambdalar ekleme.

Daha önce bir bileşen parametresinin değerini ayarlayan bir öznitelik kaldırıldığında, kaldırılan parametreyi varsayılan değerine geri ayarlamak için bileşenin atıldığını ve yeniden başlatıldığını unutmayın.

Aşağıdaki kod değişiklikleri uygulamalar için Blazor WebAssembly desteklenmez:

Blazor WebAssembly Anında Yeniden Yükleme aşağıdaki kod değişikliklerini destekler:

  • Yeni türler.
  • İç içe sınıflar.
  • Değişkenleri, ifadeleri ve deyimleri ekleme, kaldırma ve düzenleme gibi yöntem gövdelerinde yapılan çoğu değişiklik.
  • Lambda ifadelerinin ve yerel işlevlerin gövdelerinde yapılan değişiklikler.
  • Mevcut türlere statik ve örnek yöntemleri ekleme.
  • Var olan türlere statik alanlar ekleme.
  • Mevcut yöntemlere statik lambda ekleme.
  • Mevcut yöntemlere, önceden this'i yakalayan this'ı yakalayan lambdalar ekleme.

Daha önce bir bileşen parametresinin değerini ayarlayan bir öznitelik kaldırıldığında, kaldırılan parametreyi varsayılan değerine geri ayarlamak için bileşenin atıldığını ve yeniden başlatıldığını unutmayın.

Aşağıdaki kod değişiklikleri uygulamalar için Blazor WebAssembly desteklenmez:

Blazor WebAssembly Anında Yeniden Yükleme aşağıdaki kod değişikliklerini destekler:

  • Değişkenleri, ifadeleri ve deyimleri ekleme, kaldırma ve düzenleme gibi yöntem gövdelerinde yapılan çoğu değişiklik.
  • Lambda ifadelerinin ve yerel işlevlerin gövdelerinde yapılan değişiklikler.

Aşağıdaki kod değişiklikleri uygulamalar için Blazor WebAssembly desteklenmez:

  • Yeni lambdalar veya yerel işlevler ekleme.
  • Yeni await bir işleç veya yield anahtar sözcük ifadesi ekleme.
  • Yöntem parametrelerinin adlarını değiştirme.
  • Yöntem gövdelerinin dışındaki değişiklikler.
  • Örnek (static olmayan) alanlar, olaylar veya özellikler ekleme.

.NET CLI

Anında Yeniden Yükleme dotnet watch komutuyla etkinleştirilir.

dotnet watch

Uygulamayı yeniden derlemeye ve yeniden başlatmaya zorlamak için komut kabuğundaki Ctrl+R klavye bileşimini kullanın.

Kaba düzenleme olarak adlandırılan, desteklenmeyen bir kod düzenlemesi yapıldığında, dotnet watch uygulamayı yeniden başlatmak isteyip istemediğinizi sorar:

  • Evet: Uygulamayı yeniden başlatır.
  • Hayır: Uygulamayı yeniden başlatmaz ve değişiklikler uygulanmadan uygulamayı çalışır durumda bırakır.
  • Her zaman: Kaba düzenlemeler gerçekleştiğinde uygulamayı gerektiği gibi yeniden başlatır.
  • Hiçbir zaman: Uygulamayı yeniden başlatmaz ve gelecekteki istemleri önler.

"Hot Reload" desteğini devre dışı bırakmak için --no-hot-reload seçeneğini dotnet watch komutuna ekleyin.

dotnet watch --no-hot-reload

Hot Reload'u Devre Dışı Bırak

Aşağıdaki Properties/launchSettings.json ayarı Sık Erişimli Yeniden Yüklemeyi devre dışı bırakır:

"hotReloadEnabled" : false

Ek kaynaklar

Daha fazla bilgi için Visual Studio belgelerinde aşağıdaki kaynaklara bakın: