Добавление некоторых автоматических версий в CSS-файлы. Почему я не могу получить информацию о сборке?

<link rel="stylesheet" type="text/css" href="../Content/Dashboard/CustomTooltip.css?v=<%= System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).FileVersion %>" />

Пара вопросов:

  • Это нормальный способ сделать это? Идея состоит в том, что когда информация о сборке наших продуктов изменяется, версия обновляется, путь к файлу CSS изменяется и делает кэш недействительным.
  • Если я помещаю код C# в окно просмотра, я вижу правильную информацию о версии, но на странице.aspx она не загружается. Нет сообщения об ошибке, но он просто говорит.css? V = без версии.

Спасибо

Изменить: Кажется, это как-то связано с отражением, которое происходит. Если я говорю:

System.Reflection.Assembly.GetExecutingAssembly().GetName().Name

Я вижу правильное имя в окне просмотра, но при оценке на странице.aspx это App_Web_35 (не правильно). Есть идеи, как это исправить?

Edit2: я закончил тем, что выбрал решение, которое мне не совсем нравится, но я бы хотел услышать другие отзывы. Я просто положил:

protected string GetApplicationVersion()
{
    return System.Diagnostics.FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion;
}

на моей связанной странице CS - а затем в коде behe я назвал <% GetApplicationVersion ()%> и теперь он с радостью возвращает правильную информацию. Хотелось бы, чтобы это было встроено, хотя.

1 ответ

Решение

Файл CSS является статическим, как HTML. Подумайте о создании разных CSS-файлов и назовите это так

<link rel="stylesheet" type="text/css" href="../Content/Dashboard/CustomTooltip_<%= `System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAsse`m`bly().Location).FileVersion %>.css" />`

так что вам нужен файл CSS, как это ../Content/Dashboard/CustomTooltip_1.0.css

Другие вопросы по тегам