Estou usando o seguinte código em um rodapé em meu arquivo _Layout.cshtml para colocar os dados da versão AssemblyInfo no rodapé de cada página do meu site MVC3. Contudo:
@System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()
Apenas imprime no rodapé:
Revision 0.0.0.0
Quando eu modifiquei a vista para exibir todas as informações de montagem para a "Montagem em execução" usando o seguinte
@System.Reflection.Assembly.GetExecutingAssembly().GetName().ToString()
Que imprime o seguinte:
Revision App_Web__layout.cshtml.639c3968.hlogy75x, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Isso mostra que o "Executing Assembly" não é meu aplicativo principal, é a própria visualização.
Como obtenho as informações de montagem do aplicativo ACTUAL, não apenas as visualizações individuais?
c#
asp.net-mvc-3
reflection
assemblies
razor
Jay Stevens
fonte
fonte
@GetType(YourApplicationNamespace.MvcApplication).Assembly.GetName.Version
para todos os VB.NETers. Nós dois.@typeof(YourDefaultNamespace.WebApiApplication).Assembly.GetName().Version
. Pode até funcionar sem o namespace padrão:@typeof(WebApiApplication).Assembly.GetName().Version
@typeof(YourApplicationNamespace.MvcApplication).Assembly.GetName().Version.ToString(3)
retorna 3 das 4 partes da versão de montagem se alguém estiver curioso. Você pode variar entre 0 e 4.@{Version version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;}
então<h1>Ver. @version</h1>
Usar este ajudante funciona para mim:
fonte
Isso funciona para mim. Sem precisar mencionar explicitamente o tipo.
fonte
Você precisa obter a montagem de um tipo no projeto:
Onde
MyType
está qualquer tipo no próprio projeto MVC (por exemplo, um controlador ou modelo, ou aMvcApplication
classe)fonte
Expandindo a resposta de takepara, se você quiser que um liner obtenha o AssemblyInformationalVersionAttribute de um MVC Razor View:
fonte
Você pode tentar usar GetCallingAssembly (). Não tenho certeza se isso é alto o suficiente na pilha de chamadas ou não, mas como o Razor realmente cria um assembly para cada visualização, é lógico que seu aplicativo seja o assembly de chamada para o assembly de visualização.
fonte
para um controlador de API, usei isso com base em outras respostas
fonte
Meu problema era que eu tinha renomeado o namespace depois e recebi o erro acima. O problema era a referência de namespace antigo em Views \ Web.config. Tive que mudar de
Project.WebAPI17
paraCompany.Project.WebAPI17
fonte
Você pode obtê-lo usando a propriedade Name conforme abaixo:
é isso que você está procurando?
fonte
Vá para o Home Controller e apenas copie este código:
Renomear
ActionResult
para Stringfonte