Silverlight缓存控制:在XAP的URL中使用修订号导致HyperLink崩溃SL App!

时间:2009-06-12 15:45:37

标签: silverlight caching silverlight-2.0

为了确保所有客户都收到最新的Silverlight应用程序,我们将新版本号放在XAP文件的URL上,如下所示:

<param name="source" value="/ClientBin/ShoeboxViewer.xap?v=5" />

问题是当我们这样做时,所有使用相对URL的HyperLink控件(在Silverlight应用程序中)在单击时抛出内部错误。这是堆栈跟踪:

  

Silverlight 2中未处理的错误应用程序指定的参数超出了有效值的范围。参数名称:baseUri    在System.Uri..ctor(Uri baseUri,Uri relativeUri)    在System.Windows.Controls.HyperlinkBut​​ton.GetAbsoluteUri()    在System.Windows.Controls.HyperlinkBut​​ton.Navigate()    在System.Windows.Controls.HyperlinkBut​​ton.OnClick()    在System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)    在System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl,EventArgs e)    在MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj,IntPtr unmanagedObjArgs,Int32 argsTypeIndex,String eventName)

如果删除查询字符串,它可以正常工作。

有人可以帮忙吗?

干杯, 灰分。

2 个答案:

答案 0 :(得分:1)

问题实际上是HyperlinkBut​​tons无法使用相对网址。我前几天碰到了这个。这是一个黑客,但我通过向HyperlinkBut​​ton添加一个单击处理程序,然后调用HtmlPage.Navigate,传入一个标记为相对的uri

来实现它。

答案 1 :(得分:1)

Jacob是对的 - 您可能还想查看this solution以修复相对网址。