【问题标题】:SIlverlight XAP file not refreshing when debugging application调试应用程序时不刷新 SIlverlight XAP 文件
【发布时间】:2011-07-25 10:24:03
【问题描述】:

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

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

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

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

如果您以前遇到过这个问题并有真正的解决方案,请告诉我。 (“格式化硬盘并重新安装所有东西”的解决方案将不被接受!)

谢谢,

丹尼尔·威廉姆斯

【问题讨论】:

  • 你测试的是什么浏览器?您的 Web 项目是应用程序还是站点?是在 IIS 中测试还是使用开发服务器进行测试?
  • 在 FireFox 4 中测试。项目是一个应用程序。在开发服务器上运行。
  • 修正是 firefox 3.6 更新到 4.0,现在调试工作正常。当然也可以在 IE9 中使用。

标签: silverlight


【解决方案1】:

几件事情要检查。

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

【讨论】:

  • Silverlight 调试已设置,但没有一个断点起作用。当我运行应用程序时,它们会变成红色的空心圆圈
  • 尝试在 VS 解决方案资源管理器中右键单击 Web 应用程序项目,然后单击“项目依赖项”,然后确保选中您的 silverlight 项目。
【解决方案2】:

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

【讨论】:

  • 什么检查设置为只读?如果它是只读的,那么很可能它不会被新的替换。将其删除并再次添加到 Web 项目(每个 Web 都应该知道它所显示的 Silverlight 内容,这就是我们将映射添加到 Web 应该显示的 Silverlight 应用程序的原因)也应该有所帮助。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

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

    我相信可以禁用 plugin-container.exe 进程(例如,参见 LIMPET235 的帖子 here),但这并不能解决您也遇到的明显缓存问题。

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

    【讨论】:

    • 天啊,就是这样。调试 silverlight 时不喜欢 Firefox。好吧,幸好我开始爱上 IE9。非常感谢!
    【解决方案5】:

    不接受“格式化硬盘,重新安装一切”的解决方案!

    格式化您的硬盘并安装 Linux (:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-10-22
      • 2011-08-09
      • 2011-09-18
      • 1970-01-01
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-04
      相关资源
      最近更新 更多