Silverlight 5 - установка / обновление OOB прервано при использовании уловки анти-кэша

Я использовал трюк с отметкой времени на Silverlight <объект> (см.GetLastWriteTime() используя ответы вКак заставить Firefox не кэшировать или повторно загружать XAP-файл Silverlight?) успешно с Silverlight 4.

Использование среды выполнения Silverlight 5*, функция установки / автоматического обновления OOB теперь не работает. У меня есть две проблемы:

при запуске в браузере текущее состояние установки всегда «не установлено» (в коде:Application.Current.InstallState == System.Windows.InstallState.NotInstalled является всегдаtrue)при запуске в режиме OOB всегда говорится, что доступна новая версия (в коде:CheckAndDownloadUpdateAsync() всегда возвращается сe.Error == null а такжеe.UpdateAvailable == true).

Кто-нибудь еще сталкивался с этим, и еще лучше, есть обходной путь?

* Точность: в настоящее время мое приложение построено с использованием инструментов Silverlight 5, но нацелено на Silverlight 4 и прекрасно работает в среде выполнения Silverlight 4 Developer. Проблема возникает (по крайней мере) на моем компьютере разработчика, использующем Silverlight 5 Developer Runtime.

Обновить: Я проверил с Fiddler, что происходит на моей коробке разработчика. Когда запускается процесс обновления, я вижу:

GET /ClientBin/Client.xap?timestamp=23%2f01%2f2012+17%3a42%3a14 HTTP/1.1
If-Modified-Since: Tue, 24 Jan 2012 09:10:07 GMT

Это хорошо для меня, за исключением того, что сервер (Сервер: ASP.NET Development Server / 10.0.0.0, X-AspNet-Version: 4.0.30319) возвращает новую версию со следующими заголовками кэша:

HTTP/1.1 200 OK
Cache-Control: private
Date: Tue, 24 Jan 2012 09:11:28 GMT

Каждый раз, когда я запускаю приложение, в запросе на проверку указывается правильная дата (ранее возвращенная сервером), и каждый раз сервер сообщает, что у него есть новая версия с текущей датой. Я постараюсь настроить конфиг сервера.

Update2: В моем файле Web.config была директива управления кешем, но удаление ее решило только половину проблемы. Теперь приложение в браузере обнаруживает, что установка OOB в порядке, но цикл обновления продолжается с той же трассировкой Fiddler.

Update3: Проблема определенно связана с отладочным веб-сервером. У того же приложения, развернутого на соответствующем IIS с тем же Web.config, такой проблемы нет. Но это по-прежнему раздражает, поскольку значительно замедляет процесс отладки OOB.

Update4: Фактически, проблема все еще присутствует даже в моем основном развертывании IIS, и произошла на других серверах (и с использованием PHP для генерации метки времени вместо ASP.NET). Так что любая помощь приветствуется.

Update5: Как я и просил, вот мой код, довольно простой:

private void CheckAndDownloadUpdateCompleted(object sender, System.Windows.CheckAndDownloadUpdateCompletedEventArgs e)
{
    if (e.Error != null)
    {
        if (e.Error is PlatformNotSupportedException)
        {
            UpdateType = UpdateTypes.PlatformUpdate;
            //(...)
            return;
        }
        else if (e.Error is SecurityException)
        {
            UpdateType = UpdateTypes.ElevationRequired;
            //(...)
            return;
        }
        else
        {
            // Error handling code
            //(...)
        }
    }
    else if (e.UpdateAvailable)
    {
        UpdateType = UpdateTypes.Available;
        //(...)
        return;
    }

    UpdateType = UpdateTypes.NoUpdate;

    //(...)
}

UpdateType это свойство типа enum, которое позволяет мне выбрать правильную локализованную строку где-то еще.

Update6: Различные//(...) части (косвенно) меняют вид приложения,UpdateType не является.

Ответы на вопрос(3)

Ваш ответ на вопрос