Silverlight 5 - Instalação / atualização OOB interrompida ao usar o truque anti-cache

Eu estava usando o truque de carimbo de data e hora no <object> do Silverlight (consulteGetLastWriteTime() usando respostas emComo você força o Firefox a não armazenar em cache ou baixar novamente um arquivo XAP do Silverligh) com sucesso com o Silverlight 4.

Usando um tempo de execução do Silverlight 5*, o recurso de instalação / atualização automática do OOB agora parece estar quebrado. Eu tenho dois problemas:

ao iniciar no navegador, o estado atual da instalação sempre é 'não instalado' (no código:Application.Current.InstallState == System.Windows.InstallState.NotInstalled é sempretrue) ao iniciar no modo OOB, está sempre dizendo que uma nova versão está disponível (no código:CheckAndDownloadUpdateAsync() sempre retorna come.Error == null ee.UpdateAvailable == true).

Alguém mais encontrou isso e, melhor ainda, tem uma solução alternativa?

* Precisão: atualmente, meu aplicativo é criado usando o Silverlight 5 Tools, mas tem como alvo o Silverlight 4 e funciona bem no Silverlight 4 Developer Runtime. O problema ocorre (pelo menos) na minha máquina de desenvolvimento usando o Silverlight 5. Developer Runtim

Atualizar Verifiquei com o Fiddler o que acontece na minha caixa de desenvolvimento. Quando o processo de atualização é chamado, vejo:

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

Tudo bem para mim, exceto que o servidor (Servidor: ASP.NET Development Server / 10.0.0.0, X-AspNet-Version: 4.0.30319) retorna uma nova versão, com os seguintes cabeçalhos de cache:

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

Toda vez que executo o aplicativo, a solicitação de verificação tem a data correta (a retornada anteriormente pelo servidor) e cada vez que o servidor diz ter uma nova versão, com a data atual. Vou tentar ajustar a configuração do servido

Update2: Eu tinha uma diretiva de controle de cache no meu arquivo Web.config, mas removê-lo apenas resolveu metade do problema. Agora, o aplicativo no navegador detecta que a instalação do OOB está ok, mas o ciclo de atualização continua, com o mesmo rastreamento do Fiddle

Update3: O problema está definitivamente relacionado ao servidor web de depuração. O mesmo aplicativo implantado em um IIS adequado com o mesmo Web.config não possui esse problema. Mas isso ainda é irritante, pois diminui consideravelmente o meu processo de depuração OO

Update4: Na verdade, o problema ainda está presente, mesmo na minha implantação principal do IIS, e aconteceu em outros servidores também (e usando o PHP para gerar o registro de data e hora em vez do ASP.NET). Portanto, qualquer ajuda é apreciada

Update5: Conforme solicitado, aqui está o meu código, bastante direto:

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 é uma propriedade do tipo enum que me permite escolher a string localizada certa em outro luga

Update6: Os vários//(...) partes estão (indiretamente) alterando a visualização do aplicativo,UpdateType não é

questionAnswers(6)

yourAnswerToTheQuestion