Я использую следующий код в нижнем колонтитуле моего файла _Layout.cshtml, чтобы поместить данные версии AssemblyInfo в нижний колонтитул каждой страницы моего сайта MVC3. Тем не мение:
@System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()
Просто печатает в нижнем колонтитуле:
Revision 0.0.0.0
Когда я изменил представление, чтобы отобразить всю информацию о сборке для «Выполняемой сборки», используя следующие
@System.Reflection.Assembly.GetExecutingAssembly().GetName().ToString()
Что печатает следующее:
Revision App_Web__layout.cshtml.639c3968.hlogy75x, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Это показывает, что «Executing Assembly» - это не мое основное приложение, это само представление.
Как мне получить информацию о сборке для АКТУАЛЬНОГО приложения, а не только отдельные представления?
c#
asp.net-mvc-3
reflection
assemblies
razor
Джей Стивенс
источник
источник
@GetType(YourApplicationNamespace.MvcApplication).Assembly.GetName.Version
для всех любителей VB.NET. Мы оба.@typeof(YourDefaultNamespace.WebApiApplication).Assembly.GetName().Version
. Он может работать даже без пространства имен по умолчанию:@typeof(WebApiApplication).Assembly.GetName().Version
@typeof(YourApplicationNamespace.MvcApplication).Assembly.GetName().Version.ToString(3)
возвращает 3 из 4 частей версии сборки, если кому-то интересно. Вы можете варьироваться от 0 до 4.@{Version version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;}
затем<h1>Ver. @version</h1>
Мне подходит этот помощник:
источник
У меня это работает. Без необходимости явно указывать тип.
источник
Вам необходимо получить в проекте сборку вида:
Где
MyType
находится любой тип в самом проекте MVC (например, контроллер, модель илиMvcApplication
класс)источник
Расширяя ответ takepara, если вы хотите, чтобы один лайнер получил AssemblyInformationalVersionAttribute из представления MVC Razor:
источник
Вы можете попробовать использовать GetCallingAssembly (). Я не уверен, что это достаточно высоко в стеке вызовов или нет, но поскольку Razor фактически создает сборку для каждого представления, само собой разумеется, что ваше приложение будет вызывающей сборкой для сборки представления.
источник
для контроллера api я использовал это на основе других ответов
источник
Моя проблема заключалась в том, что я впоследствии переименовал пространство имен и получил указанную выше ошибку. Проблема заключалась в старой ссылке на пространство имен в файле Views \ Web.config. Мне пришлось изменить его с
Project.WebAPI17
наCompany.Project.WebAPI17
источник
Вы можете получить его, используя свойство Name, как показано ниже:
это то, что вы ищете?
источник
Перейдите в Home Controller и просто скопируйте этот код:
Переименовать
ActionResult
в строкуисточник