Получение версии сборки исполняемого веб-приложения

Я хочу реализовать в своей библиотеке некоторый код очистки кеша, который можно интегрировать с веб-приложениями / сайтами 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
Другие вопросы по тегам