Отладка перерывов Silverlight в Firefox - PullRequest
0 голосов
/ 17 августа 2011

Еще несколько минут назад мое приложение Silverlight прекрасно работало с точками останова в Firefox.Тем не менее, теперь он не только показывает, что точка останова не будет достигнута (набросок вместо сплошной точки останова), основываясь на некоторых операторах Debug.WriteLine, но я вижу, что выполняется более старая версия моего кода.

Что здесь происходит?Как я могу устранить неполадки и исправить эту проблему?Является ли это известной проблемой?

В прошлом у меня также был такой же режим работы Chrome, но затем он тоже загадочным образом прекратил работу с контрольными точками.(Я никогда не использовал прикрепление к процессу для ручного присоединения.)

Ответы [ 2 ]

3 голосов
/ 17 августа 2011

Похоже, ваш браузер использует кешированную версию вашего XAP-файла и использует ее вместо вашего самого последнего скомпилированного XAP.Я знаю, это звучит тривиально, но вы пытались очистить историю браузера?

0 голосов
/ 17 августа 2011

У нас была проблема с нашим развернутым приложением, из-за которой клиент не загружал последнюю версию файлов xap, несмотря на то, что они обновлялись на сервере и явно различались как по размеру, так и по дате изменения.Похоже, мы не получаем этого на наших машинах для разработки.

Здесь может происходить нечто подобное.

Мы решили нашу проблему, добавив ?[xap file date] к ссылке всех файлов xap.Это было как на странице xspx для основного файла xap, так и в базе данных для всех ссылок Prism.Этой фиктивной строки запроса, по-видимому, достаточно, чтобы обмануть браузер, чтобы он рассматривал файл xap как другой и загружал обновленную версию.

Для файла xap, на который есть ссылка на странице aspx, необходимо выполнить действия, описанные в это сообщение в блоге .Основная часть этого кода:

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
   <%
       string strSourceFile = @"ClientBin/SilverlightApplication2.xap";
       string param;    
       if (System.Diagnostics.Debugger.IsAttached)
           //Debugger Attached - Refresh the XAP file.
           param = "<param name=\"source\" value=\"" + strSourceFile + "?" + DateTime.Now.Ticks + "\" />";
       else
       {
           //Production Mode 
           param = "<param name=\"source\" value=\"" + strSourceFile + "\" />";
       }
       Response.Write(param);
    %> 
     <param name="onError" value="onSilverlightError" />
     <param name="background" value="white" />
     <param name="minRuntimeVersion" value="4.0.50826.0" />
     <param name="autoUpgrade" value="true" />
     <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none">
          <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
     </a>
</object>

Что это делает, это найти текущую метку времени файла xap и добавить ее.Сгенерированный код будет выглядеть примерно так:

<param name="source" value="ClientBin/SilverlightApplication2.xap??634299001187160148">

Это делает ссылку на файл xap уникальной при каждом обновлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...