Получение версии сборки исполняемого веб-приложения
Я хочу реализовать в своей библиотеке некоторый код очистки кеша, который можно интегрировать с веб-приложениями / сайтами ASP.NET. Это будет реализовано путем добавления строки версии в конец URL. Поставщик версий по умолчанию, который я хотел бы предоставить для очистки кэша, будет использовать версию сборки на веб-сайте хоста.
В настоящее время, по сути, это то, как я извлекаю этот номер версии:
HttpContext.Current
.ApplicationInstance
.GetType()
.Assembly
.GetName()
.Version
.ToString()
К сожалению, по крайней мере для моего образца тестового сайта, Assembly
для экземпляра приложения является сгенерированной сборкой (я думаю, потому что global.asax
компилируется в новую сборку). В " Получении имени сборки веб-приложения, независимо от текущей исполняемой сборки, SLaks говорит, что вы можете использовать BaseType
чтобы получить фактический тип сборки сайта, но я предполагаю, что если сайт не использует global.asax
файл, BaseType
даст вам кое-что в BCL.
Есть ли надежный способ извлечь номер версии сборки для веб-приложения ASP.NET? Я также заинтересован в альтернативных подходах к генерации токенов для каждой сборки, которые не потребуют дополнительных шагов сборки для разработчика приложения.
1 ответ
Моя стратегия состоит в том, чтобы выбрать тип среди моих пользовательских типов и спросить среду выполнения о номере версии сборки этого типа.
typeof( SomeKnownType ).Assembly.GetName().Version