clickonce deployment.xlication安装后崩溃时出现xamlparser错误

时间:2010-05-28 11:17:09

标签: wpf deployment clickonce xamlparseexception

1 个答案:

答案 0 :(得分:0)

如果您转到ClickOnce缓存并找到应用程序的可执行文件并双击它,它是否仍会失败?如果是这样,那么它本身就不是ClickOnce问题。可能是您缺少部署中需要的某个程序集。或者您正在执行ClickOnce不允许的操作,例如访问需要管理权限的文件夹。

您还可以尝试在构建之后从\ bin \ release文件夹中运行它,但是如果您的计算机上没有正在部署的程序集,则不会告诉您。

Windows 7(和vista)上的ClickOnce缓存在这里:
C:\ Users \ username \ AppData \ Local \ Apps \ 2.0 \ obfuscatedfolder \ obfuscatedfolder

从那里,对于win form app,它会创建两个文件夹,一个名为xxxx ... exe_etc,另一个名为xxxx ... tion_etc ...以xxxx_tion开头的那个(其中xxxx =你的前四个字符)程序集名称)是运行应用程序的名称。我不确定WPF应用程序的文件夹名称是否相同,但希望它们没有太大差异。可执行文件只能在一个文件夹中。 (是的,你会认为它会出现在xxxx ... exe_etc文件夹中,但事实并非如此。)

编辑 - 添加信息

对于丢失图像的问题:它们是否作为文件包含在项目中?如果是这样,请确保构建操作是“内容”,并且“复制到输出目录”属性设置为“始终复制”。否则,它将不会在部署中包含它们。

对于数据库,同样的问题。它需要包含在项目中,并且必须相应地设置属性(将'copy ...'设置为'copy if newer')。另外,打开“应用程序文件”对话框,查看它是否标记为“包含(数据)”。如果是,则将其部署到Data目录。如果以这种方式进行部署,则在发布新版本时,它会将数据向前复制到新文件夹。您可以使用ApplicationDeployment.DataDirectory属性以编程方式找到它。

我通常不建议您将数据信任到ClickOnce。如果您将某些内容部署为数据,并且本地版本上的日期/时间戳发生更改,ClickOnce将部署新版本,并将旧版本放在名为。\ pre的子文件夹中。对我来说,这很危险,因为你可能会意外地修改数据。如果您只是打开数据库来查看表结构,SQLCE会更改日期/时间戳。所以我自己移动数据并处理数据库的更新。如果您想了解更多相关信息,请查看keeping your data safe from ClickOnce updates上的博文。