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. Çalışırken Yeniden Yükleme, .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.

"Çalışırken Yeniden Yükleme" desteğini devre dışı bırakmak için --no-hot-reload seçeneğini dotnet watch komutuna ekleyin.

dotnet watch --no-hot-reload

Çalışırken Yeniden Yükleme'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

WebAssembly Anında Yeniden Yükleme (WasmEnableHotReload)

.NET 10 ve sonraki sürümlerde, WasmEnableHotReload MSBuild özelliği, Blazor WebAssembly uygulamaları ve Blazor WebAssembly olmayan Tarayıcı Uygulaması (wasmbrowser şablonu) projeleri dahil olmak üzere .NET WebAssembly uygulamalarında Çalışırken Yeniden Yükleme altyapısının derleme çıktısına eklenip eklenmeyeceğini denetler. true yapılandırması için özellik varsayılan olarak Debug şeklinde ayarlanır.

Özelliğin false olarak ayarlanması, dotnet build çıktısından Çalışırken Yeniden Yükleme bağımlılıklarını kaldırır; bu, örneğin webpack veya Vite ile kullanılacak paketleyicilerle uyumlu çıktılar üretirken yararlıdır.

WebAssembly uygulamaları için Çalışırken Yeniden Yükleme'u devre dışı bırakmak üzere, özelliği uygulamanın proje dosyasında (.csproj) false olarak ayarlayın:

<PropertyGroup>
  <WasmEnableHotReload>false</WasmEnableHotReload>
</PropertyGroup>

Çalışırken Yeniden Yükleme’ı özel (Debug olmayan) bir yapılandırma için etkinleştirmek amacıyla özelliği true olarak ayarlayın:

<PropertyGroup>
  <WasmEnableHotReload>true</WasmEnableHotReload>
</PropertyGroup>

Uygulamalarda Çalışırken Yeniden Yükleme Blazor WebAssembly denetleme hakkında daha fazla bilgi için bkz. ASP.NET Core Blazor uygulamalarında hata ayıklama.

Ek kaynaklar

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