如何在客户端计算机上将XBAP更新到最新版本?

Alc*_*lcy 22 c# asp.net wpf xbap

我开发了一个嵌入在ASP.NET网页中的XAML浏览器应用程序(XBAP).我在客户端计算机上更新最新版本的XBAP时遇到问题.在开发过程中,我不得不使用Mage.exe工具清除应用程序缓存,以便在我的本地计算机上运行时可以看到我的更改.除了Mage.exe -cc在命令行中执行外,我还发现rundll32 dfshim CleanOnlineAppCache它也能正常工作.

但是,我不想让客户在命令行中运行任何命令.我需要做些什么才能使XBAP在客户端计算机上自动更新?先前版本的XBAP将继续运行,而不是在客户端计算机上刷新更新的XBAP.

更新

我在这个问题上创造了一笔赏金,因为我有同样的问题.根据我在线阅读的内容,XBAP应该将缓存版本#与网络服务器上的版本#进行比较,如果不同则下载新版本.我已经验证我的版本号不同,但缓存的副本仍然是我启动XBAP时运行的副本.

如果我在asp.net页面之外启动XBAP,也会出现缓存副本,但如果我更改了url参数,我会得到新版本.

更新#2

我发现XBAP会在XP 32位计算机上自动更新,但不能在我的Windows 7 64位计算机上自动更新.

Ale*_*lex 2

你可以尝试这样的事情,虽然我在 XAP 而不是 XBAP 中使用它,但它也可能对你有用:

(以下是片段)

public partial class App : Application
{
    /// <summary>
    /// Creates a new <see cref="App"/> instance.
    /// </summary>
    public App()
    {
        Application.Current.CheckAndDownloadUpdateAsync();
        // rest of code
Run Code Online (Sandbox Code Playgroud)

编辑

本来建议在发布之间增加版本号,但似乎已经得到解决。所有浏览器上都会出现此行为吗?可能是一些特定于 IE 的错误/奇怪(我见过很多仅 IE 的不当行为......不会让我感到惊讶)