Class Library Projelerine Razor Intellisense Desteği Eklemek

Merhaba Arkadaşlar,

Modüler programlama stili ile Mvc projesi oluşturduğumuz zamanlarda ya da Nop Commerce, Orchard gibi cms sistemlerine, eklenti yazmak istediğimiz zamanlarda, Class Library pojesi oluşturup dll çıktı almak isteyebileceğiz.

Bu gibi durumlarda, Class Library projemizi oluşturup, View'lerimizi eklediğimiz zaman @Html vs. kodlarımızı yazmak istediğimizde Intellisense'nin bize yardımcı olmadığını göreceğiz. Evet, gerçekten çok can sıkıcı bir durum.

Yaptığım detaylı araştırmadan sonra, konu hakkında çözümü Mohammad Chehab'ın şu yazısında buldum. Kendisine teşekkür ediyorum. Şimdi çözümümüzü inceleyelim;

  • Visual Studio üzerinden New Project diyelim ve Class Library seçeneğini seçip Ok tuşuna tıklayalım.

Class Library projesi açma

  • Solution Explorer üzerinde, sağ tıklayıp Add>New Folder diyelim ve ismini Views olarak değiştirelim.
  • Daha sonra eklediğimiz Views klasörüne sağ tıklayarak, Add>New Item diyelim. Class'ı seçip dosya adını deneme.cshtml yapıp, Add tuşuna tıklayalım.

 Projeye yeni class ekleme

Burada Class yerine Text dosyası bile ekleyebilirsiniz.Class dosyası olma şartı yoktur. Dikkat edeceğiniz üzere, seçeneklerde View dosya biçimi yok. Bu yüzden içerisini, View dosyası haline biz getireceğiz.

  • deneme.cshtml dosyasının içini tamamen silip aşağıdaki kodu yazmak istediğimizde,
@Html.Label

aşağıdaki resimdeki gibi Intellisense'nin tamamlayamadığını göreceğiz.

Intellisense hatası

Şimdi bu sorunu düzeltelim.

  • Projemizin üzerine sağ tıklayıp, Manage Nuget Packages'i seçelim.

Manage nuget packages

  • Açılan ekranda sol tarafta Online seçili iken arama kutucuğuna mvc yazalım. Microsoft Asp.Net Mvc en başta çıkacaktır. (Sürümlerde ya da isimde değişiklikler olabilir.) Install kutucuğuna tıklayalım.

Mvc kurulumu

  • Çıkan onay ekranında I Accept tuşuna tıklayalım.

Nuget kurulum onayı

  • Kurulum işlemi bittikten sonra, projemizin üzerine sağ tıklayarak Properties menüsüne girelim.
  • Açılan ekranda Build sekmesine geçelim.
  • Output Path'taki yolu bin\ olarak değiştirelim.

Proje build ayarları

  • İşlemi gerçekleştirdikten sonra kayıt yapalım. 
  • Projeye sağ tıklayıp Clean diyelim.
  • Ardından da sağ tıklayıp, Rebuild diyelim.
  • deneme.cshtml dosyamız açıksa, kapatıp tekrar açalım.

Bingo. Intellisense'miz artık aktif. Yaptığımız işlemlerde en kritik nokta Build Output Path'in bin\ olarak ayarlanması. Çünkü Mvc projelerinin Output Path'i bin\ olmaktadır.

Hepinize kolaylıklar diliyorum.