调试应用程序时,SIlverlight XAP文件未刷新

时间:2011-03-29 16:04:39

标签: silverlight

我在构建Silverlight应用程序(版本4)的团队中工作。我们使用SVN并且所有工作都在代码的不同部分上工作,并使用最新代码定期更新项目。 Silverlight应用程序从ASP.NET Web应用程序运行。在更新代码时,我们遇到了非常令人沮丧的问题。似乎旧版本的XAP正在被缓存。

示例:Francisco更改弹出对话框的措辞,并提交更改。一个非常简单的变化,可能出现什么问题?我得到了最新的代码。我在IDE(VS2010)中看到了新代码并运行它。当我查看该对话框时,它没有新的措辞,即使我可以在我的文件中看到新的措辞。我在代码的右边放置了一个断点,但是当我运行应用程序时,断点被禁用了!

我尝试使用Silverlight和Web主机的Clean构建。我杀了我的本地ASP.NET开发服务器。我运行应用程序 - 同样的事情!我从ClientBin中删除了xap。不好。 我们团队中的每个人都遇到了这个问题。现在我们偶尔解决它,但永远不确定究竟什么是固定的东西,这是不令人满意的。

必须有一些设置或我们缺少的东西。你会认为删除ClientBin xap文件会解决它,因为新的XAP必须来自编译Silverlight应用程序,对吗?

如果您之前看过这个问题并有真正的解决方案,请告诉我。 (不会接受“格式化硬盘并重新安装所有内容”的解决方案!)

谢谢,

丹尼尔威廉姆斯

5 个答案:

答案 0 :(得分:6)

我建议您使用IE进行Silverlight开发。另请参阅this answer

使用Firefox进行开发的问题是Firefox在单独的进程(plugin-container.exe)中运行插件。启动调试器时,VS不知道Silverlight将不会从它启动的进程中运行,因此它不会附加到正确的进程。 Silverlight代码中的断点似乎不起作用,因为VS调试器未附加到运行Silverlight代码的任何进程。

我相信可以禁用plugin-container.exe进程(例如,参见LIMPET235的帖子here),但这不会修复你正在经历的明显缓存。 / p>

我曾经使用Firefox进行Silverlight开发,但是当我切换到使用IE时,我发现事情变得更加顺畅。

答案 1 :(得分:1)

要检查的事情。

  • 确保您的silverlight项目的输出路径正确。
  • 确保您的silverlight应用程序已添加到您的Web应用程序项目中。
  • 在您的网络应用程序项目中启用silverlight调试。
  • 将Silverlight项目设置为Web应用程序设置中的依赖项

答案 2 :(得分:1)

首先,请问您的.xap文件是否也包含在源代码管理中? 它不应该包括在内......,不需要恕我直言。 您的xap文件很可能设置为只读。 转到该文件位置并使ClientBin文件夹不是只读的。

答案 3 :(得分:1)

我在缓存XAP文件之前已经看到了这一点。尝试清空浏览器缓存,然后在XAP上放置查询字符串。所以你的XAP参考看起来像Foo.xap?1234

答案 4 :(得分:0)

  

解决方案"格式化您的硬盘并重新安装所有内容"不会被接受!

格式化硬盘并安装Linux(:

更重要的是,在SomeSilverlightApp.Web项目中配置Silverlight应用程序选项卡,将xap文件从SomeSilverlightApp项目复制到ClientBin文件夹,该文件夹默认显示在那里。

在我的情况下,ClientBin文件夹也是SomeSilverlightApp.Web项目的一部分,xap属性设置为CopyToOutputDirectory:Always以便它也被部署。

这可能不是正确的解决方案,但它可以在这里工作,我没有时间尝试调查这个奇怪的逻辑。