Saya menggunakan kode berikut di footer di file _Layout.cshtml saya untuk meletakkan data versi AssemblyInfo ke footer setiap halaman di situs MVC3 saya. Namun:
@System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()
Hanya mencetak di footer:
Revision 0.0.0.0
Ketika saya mengubah tampilan untuk menampilkan semua info perakitan untuk "Majelis Pelaksana" menggunakan berikut ini
@System.Reflection.Assembly.GetExecutingAssembly().GetName().ToString()
Yang mencetak berikut ini:
Revision App_Web__layout.cshtml.639c3968.hlogy75x, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Ini menunjukkan bahwa "Majelis Pelaksana" bukanlah aplikasi utama saya, ini adalah tampilan itu sendiri.
Bagaimana cara mendapatkan informasi perakitan untuk aplikasi SEBENARNYA, bukan hanya tampilan individu ??
c#
asp.net-mvc-3
reflection
assemblies
razor
Jay Stevens
sumber
sumber
@GetType(YourApplicationNamespace.MvcApplication).Assembly.GetName.Version
untuk semua VB.NETers. Kita berdua.@typeof(YourDefaultNamespace.WebApiApplication).Assembly.GetName().Version
. Ia bahkan dapat bekerja tanpa namespace default:@typeof(WebApiApplication).Assembly.GetName().Version
@typeof(YourApplicationNamespace.MvcApplication).Assembly.GetName().Version.ToString(3)
mengembalikan 3 dari 4 bagian versi rakitan jika ada yang penasaran. Anda dapat bervariasi antara 0 dan 4.@{Version version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;}
kemudian<h1>Ver. @version</h1>
Menggunakan helper ini berhasil untuk saya:
sumber
Ini berhasil untuk saya. Tanpa perlu menyebutkan jenisnya secara eksplisit.
sumber
Anda perlu mendapatkan perakitan tipe dalam proyek:
Di
MyType
mana jenis apa pun dalam proyek MVC itu sendiri (misalnya, pengontrol atau model, atauMvcApplication
kelas)sumber
Memperluas jawaban takepara, jika Anda ingin satu liner mendapatkan AssemblyInformationalVersionAttribute dari MVC Razor View:
sumber
Anda bisa mencoba menggunakan GetCallingAssembly (). Saya tidak yakin apakah itu cukup tinggi untuk tumpukan panggilan atau tidak, tetapi karena Razor benar-benar membuat rakitan untuk setiap tampilan, masuk akal bahwa aplikasi Anda akan menjadi rakitan panggilan untuk rakitan tampilan.
sumber
untuk pengontrol api saya menggunakan ini berdasarkan jawaban lain
sumber
Masalah saya adalah saya telah mengganti nama namespace setelah itu dan saya mendapatkan kesalahan di atas. Masalahnya adalah referensi namespace lama di Views \ Web.config. Saya harus mengubahnya dari
Project.WebAPI17
menjadiCompany.Project.WebAPI17
sumber
Anda bisa mendapatkannya menggunakan properti Name seperti di bawah ini:
apakah itu yang kamu cari?
sumber
Pergi ke Home Controller dan salin saja kode ini:
Ubah nama
ActionResult
menjadi Stringsumber