WPF部署策略dilemma.clickonce(有限定制)+ autoupdate vs installer(无限制costomization)无自动更新

时间:2010-05-31 13:12:45

标签: wpf installer clickonce auto-update

我一直面临部署问题。我已经使用WPF application构建了一个visual studio 2008并创建了一个installer(msi)工作正常。但是添加{很难{1}}更新它。我在windowsclient.net上看过this article,但它看起来很旧但对我来说可能是完美的。然后我查看使用automatic的.Net应用程序updater block v2.0由于某种原因,它不是安装在我的机器上。

我以为我需要使用更新的企业库,所以我enterprise library june 2005但没有更好的事情发生。我决定尝试installed and compiled Enterprise 4.1(october 2008)部署。经过努力,它几乎是perfect.I意识到当我测试我的机器上的clickonce提供的更新时,XP我没有注意到需要CLickonce。肯定它已经存在了。当我移动到vista有问题时我注意到了。检查网后我知道sqlite dll in the GAC
现在我被卡住了,我想我已经碰壁了。任何人都可以分享他的一些经历吗?如果我能得到帮助,我愿意尝试更新程序块。

感谢您阅读此内容!!

2 个答案:

答案 0 :(得分:1)

(不适合评论)

这里有一些有用的东西 - 您可以在本地部署SQLCE dll,而不是作为先决条件进行安装,这样可以更轻松地进行部署。查看this article

这是另一篇有用的文章:how to keep your data safe from ClickOnce updates

如果您查看this thread,这将更有意义。我在这个帖子中有一个帖子,里面有两个链接。一个指向ClickOnce处理数据库部署的方式,另一个指向与上面的博客文章基本相同的线程。

答案 1 :(得分:0)

首先,您不能使用该更新程序块。它适用于.NET 1.1。在.NET 2.0中添加ClickOnce部署时,它已被标记为过时。

您可能不需要在GAC中安装该dll。在许多情况下,您可以将其包含在部署中,它将找到本地引用并使用它。它只取决于DLL。所以我建议你试试这个:

将dll添加到项目中。将“构建操作”设置为“无”。将“复制到本地目录”设置为“不复制”。

将项目中的引用删除到该dll,然后重新添加。但是,不要从GAC中选择它,而是浏览到刚添加到项目中的那个并选择它。在引用属性上,将“copy local”设置为“true”。

现在,当您运行它时,它将访问本地副本,而不是在GAC中查找本地副本。

就像我说的,这在某些情况下效果很好。它适用于SQLCE和DirectX,但不适用于Infragistics。有些组件确实必须安装在GAC中。你知道的唯一方法就是尝试它。

如果您最终必须将其放入GAC,您可以创建一个MSI来执行此操作并将其作为ClickOnce应用程序的先决条件进行部署。因此,您仍然可以将ClickOnce用于主应用程序。