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

调试应用程序时未刷新SIlverlight XAP文件,silverlight,Silverlight,我在一个团队中开发Silverlight应用程序(版本4)。我们使用SVN和代码的各个部分,并定期用最新的代码更新项目。Silverlight应用程序从ASP.NET web应用程序运行。我们在更新代码时遇到了非常令人沮丧的问题。看起来XAP的旧版本正在被缓存 示例:Francisco更改弹出对话框的措辞,并提交其更改。一个非常简单的改变,可能会出什么问题?我得到了最新的密码。我在IDE(VS2010)中看到新代码,并运行它。当我查看该对话框时,它没有新的措辞,即使我可以在文件中看到新的措辞。我

我在一个团队中开发Silverlight应用程序(版本4)。我们使用SVN和代码的各个部分,并定期用最新的代码更新项目。Silverlight应用程序从ASP.NET web应用程序运行。我们在更新代码时遇到了非常令人沮丧的问题。看起来XAP的旧版本正在被缓存

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

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

一定有一些设置或我们缺少的东西。您可能认为删除ClientBin xap文件可以解决这个问题,因为新的xap必须来自于编译Silverlight应用程序,对吗

如果你以前见过这个问题,并且有一个真正的解决方案,请让我知道。(不接受“格式化硬盘并重新安装所有内容”的解决方案!)

谢谢,


Daniel Wiliams

要检查几件事

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

首先,请检查您的.xap文件是否也包含在源代码管理中? 它不应该包括…,不需要IMHO。 您的xap文件很可能设置为只读。
转到该文件位置,并使ClientBin文件夹不是只读的(如果是)。

在缓存XAP文件之前,我已经看到了这一点。尝试清空浏览器缓存,然后在XAP上放置查询字符串。因此,您的XAP引用看起来像Foo.XAP?1234,我建议您在Silverlight开发中使用IE。另见

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

我相信可以禁用plugin-container.exe进程的使用(例如,请参阅LIMPET235的文章),但这不会修复您也遇到的明显缓存

我曾经使用Firefox进行Silverlight开发,但我发现当我改用IE时,事情会顺利得多

“格式化硬盘并重新安装所有内容”的解决方案将不被接受

格式化硬盘并安装Linux(:

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

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


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

您在哪个浏览器中测试?您的web项目是应用程序还是网站?您是在IIS中测试还是在开发服务器上测试?在FireFox 4中测试。project是一个应用程序。在开发服务器上运行。更正是FireFox 3.6更新了to 4.0,现在调试工作正常。当然,在IE9中也可以工作。它设置为只读的abot检查是什么?如果它是只读的,则很可能不会被替换为新的。将其删除并再次添加到web项目中(每个web都应该知道它显示的silverlight内容,这就是为什么我们要将映射添加到web应该显示的silverlight应用程序中)也应该有帮助。Silverlight调试已设置,但所有断点都不起作用。当我在VS解决方案资源管理器中右键单击web应用程序项目并单击“项目依赖项”时,它们会变成未填充的红色圆圈,然后确保您的Silverlight项目已选中。OMG,就是这样。调试时不喜欢Firefox很好,幸好我爱上了IE9。非常感谢!