日期:2014-05-17  浏览次数:20847 次

WPF,请教XAML浏览器应用程序的更新
关于XAML浏览器应用程序的更新,在《WPF编程宝典》第685页,有这么一段话:
重新生成应用程序并应用新版本的最简单方法是从Visual Studio菜单中选择"生成"---发布,而不需要使用发布文件(该文件位于项目目录下的 Publish文件夹中)。这是因为在Debug或Release文件夹下新生成的.xbap文件会指明新的发布版本。需要做的所有工作就是将.xbap文件(以及.exe文件和.manifest文件)部署到合适的位置。 当下一次请求.xbap文件时,浏览器将会下载新的应用程序文件并缓存它们。


以上这段话,我实在看不懂诶,我按照它的步骤,每次点击"发布",确实在项目路径下有一个"发布"文件夹,里面有每次发布的版本的文件夹,可是,浏览器运行更新版本,是需要手动更改.xbap的路径的啊

------解决方案--------------------
你把.xbap文件传到web服务器,覆盖原来的同名.xbap文件,这就是发布成功了。
------解决方案--------------------
缓存不刷新,有很多原因。

你生成的.xbap文件的时间,比原来的文件的时间,更晚吗?

如果时间更晚,那么需要监视http通讯,看看服务器返回给客户端什么异常(正常情况下会返回.xbap文件二进制内容)。例如,如果看到返回了304状态,那么就可能是浏览器首先给了一个完全错误的文件时间消息,这个时候就只能手动删除浏览器端的所有缓存文件了。
------解决方案--------------------
让你的IIS执行你发布的目录,或者把你发布目录里面的所有内容复制到IIS主目录下面,这样在浏览器上访问的时候就可以自动更新了,那个是识别程序版本号而不是文件修改日期来实现更新的,每次发布动作都会导致版本号自动+1.
------解决方案--------------------
书是翻译过来的,难免有些不当,楼主可以自行尝试各种更新方法
覆盖文件后重启IIS试试