Używam następującego kodu w stopce w moim pliku _Layout.cshtml, aby umieścić dane wersji AssemblyInfo w stopce każdej strony w mojej witrynie MVC3. Jednak:
@System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()
Po prostu drukuje w stopce:
Revision 0.0.0.0
Kiedy zmodyfikowałem widok, aby wyświetlić wszystkie informacje o zestawie dla „Wykonywania zestawu”, używając następującego
@System.Reflection.Assembly.GetExecutingAssembly().GetName().ToString()
Który drukuje następujące:
Revision App_Web__layout.cshtml.639c3968.hlogy75x, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
To pokazuje, że „Wykonywanie zestawu” nie jest moją główną aplikacją, jest to sam widok.
Jak uzyskać informacje o zestawie dla aplikacji ACTUAL, a nie tylko o poszczególnych widokach?
c#
asp.net-mvc-3
reflection
assemblies
razor
Jay Stevens
źródło
źródło
@GetType(YourApplicationNamespace.MvcApplication).Assembly.GetName.Version
dla wszystkich VB.NETers. My oboje.@typeof(YourDefaultNamespace.WebApiApplication).Assembly.GetName().Version
. Może nawet działać bez domyślnej przestrzeni nazw:@typeof(WebApiApplication).Assembly.GetName().Version
@typeof(YourApplicationNamespace.MvcApplication).Assembly.GetName().Version.ToString(3)
zwraca 3 z 4 części wersji zestawu, jeśli ktoś jest ciekawy. Możesz zmieniać się od 0 do 4.@{Version version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;}
wtedy<h1>Ver. @version</h1>
U mnie działa ten pomocnik:
źródło
To działa dla mnie. Bez konieczności jawnego podawania typu.
źródło
Musisz uzyskać montaż typu w projekcie:
Gdzie
MyType
znajduje się dowolny typ w samym projekcie MVC (np. Kontroler, model lubMvcApplication
klasa)źródło
Rozwijając odpowiedź takepary, jeśli chcesz, aby jeden liniowiec pobierał AssemblyInformationalVersionAttribute z widoku Razor MVC:
źródło
Możesz spróbować użyć metody GetCallingAssembly (). Nie jestem pewien, czy jest to wystarczająco wysoko na stosie wywołań, czy nie, ale ponieważ Razor faktycznie tworzy zestaw dla każdego widoku, jest oczywiste, że aplikacja byłaby wywoływanym zestawem dla zestawu widoku.
źródło
w przypadku kontrolera API użyłem tego na podstawie innych odpowiedzi
źródło
Mój problem polegał na tym, że później zmieniłem nazwę przestrzeni nazw i otrzymałem powyższy błąd. Problem polegał na odwołaniu do starej przestrzeni nazw w pliku Views \ Web.config. Musiałem to zmienić z
Project.WebAPI17
naCompany.Project.WebAPI17
źródło
Możesz to uzyskać za pomocą właściwości Nazwa, jak poniżej:
czy tego szukasz?
źródło
PRZEJDŹ do Home Controller i po prostu skopiuj ten kod:
Zmień nazwę
ActionResult
na Stringźródło