Windows Azure部署保留旧版本的Silverlight应用程序

Windows Azure部署保留旧版本的Silverlight应用程序,azure,Azure,我有一个小的解决方案,由两个主要项目组成:MVC4WebAPI和Silverlight5应用程序。我最初在Azure平台上配置并部署了应用程序,一切都进行得很顺利,但自从我再次部署silverlight项目后,silverlight项目并没有被推送,而在线站点使用的是旧版本 我应该提到的是,在我的本地开发机器上使用azure模拟器的所有工作都非常出色 有人有类似的问题吗 关于,我首先怀疑(正如Simon所建议的)浏览器可能仍然缓存了以前的客户端,并加载它,而不是下载新客户端 您可以使用页面上承载

我有一个小的解决方案,由两个主要项目组成:MVC4WebAPI和Silverlight5应用程序。我最初在Azure平台上配置并部署了应用程序,一切都进行得很顺利,但自从我再次部署silverlight项目后,silverlight项目并没有被推送,而在线站点使用的是旧版本

我应该提到的是,在我的本地开发机器上使用azure模拟器的所有工作都非常出色

有人有类似的问题吗

关于,

我首先怀疑(正如Simon所建议的)浏览器可能仍然缓存了以前的客户端,并加载它,而不是下载新客户端

您可以使用页面上承载silverlight应用程序的代码中的版本号来提供帮助。虽然清除缓存对您来说很容易,但您并不想在每次更新时都告诉用户这样做

将版本设置为您的最新程序集版本(silverlight客户端项目程序集),这将强制浏览器下载客户端(如果缓存的版本是较低的数字)

<param name="source" value="AppPath/App.xap?version=2.0.0.6"/>

要解决此问题,您需要确定问题的根源(是否存在缓存问题的客户端问题)。即使你说缓存不是问题,我们还是需要先确定一下

我建议您首先执行以下操作:

  • 在您的角色上激活远程桌面
  • 通过RDP连接并将此文件保存到角色:(fciv.exe)
  • 查找*.xap文件(通常在E:\sitesroot中)并获取其校验和(使用fciv.exe)
  • 在本地修改Silverlight项目(可能更改标签或在元素周围移动),以确保其哈希值已更改
  • 重新部署应用程序
  • 通过RDP连接并使用fciv.exe再次获取*.xap文件的校验和
  • 比较两个校验和
  • 如果校验和不同,则表示部署工作正常,Silverlight xap已更新。如果校验和相同,则问题在于部署

    请让我们知道结果,以便我们可以帮助您找到解决方案。

    好的

    所以在拔完头发后,我终于明白了


    我必须将生成配置更改为在VS中发布并执行重建,然后执行发布,因为在发布项目时,azure项目显然不会在项目上执行重建。

    您是否擦除了浏览器缓存?将远程桌面连接到计算机以确保文件已更新?感谢Simon,情况并非如此,我确实清除了缓存,我在旧式部署中遇到了这些问题。您使用的是webdeploy还是azure软件包?如果您使用的是azure软件包,您是否进行了升级或尝试创建新部署?您确定silverlight项目构建正确吗?例如,您可能正在本地仿真和部署版本中运行调试配置,其中项目可能会在构建配置中取消选中。感谢您的回复Simon,我正在使用azure软件包,我确实尝试了新部署(已删除并重新部署)它第一次成功了,但在第二次部署时仍然使用旧版本。这似乎是解决这个问题的一个很好的解决方法。这是否只是诱使浏览器假定xap因新URL而更改,或者是否存在版本参数的实际处理?特别是在使用持续集成/版本化生成时,这应该非常有效。它确实处理版本参数,xap路径/url可以相同-只要将程序集版本和版本标记一起递增,浏览器将加载新的xap。这对我来说非常重要,因为我有一个应用程序,它的silverlight客户端会定期更新。这是一个很好的评论,但它并不能解决我的问题,我重新创建了虚拟机,部署第一次再次工作,它们的连续更新再次无法更新xamlok,那么xap文件校验和在两次连续部署后是相同的(我每次都做了一些小的更改),那么您是在更新现有部署吗?是否存在不删除+部署或转移/交换的特定原因?您是在部署azure还是web软件包?部署azure,通过右键单击azure项目上的发布,您能为我指一个其他部署方法的教程吗?