0

我一直面临着一个部署问题。我已经构建了一个WPF applicationwithvisual studio 2008并创建了一个installer(msi),它工作正常。但是添加automatic更新是很痛苦的。我在 windowsclient.net 上看过这篇文章,但它似乎很旧,但对我来说可能是完美的东西。然后我查看了updater block v2.0使用的 .Net 应用程序,enterprise library june 2005由于某种原因它没有安装在我的机器上。

我以为我需要使用更新的企业库,所以我installed and compiled Enterprise 4.1(october 2008)没有发生更好的事情。我决定尝试CLickonce部署。经过努力,它几乎是完美的。我意识到当我测试由我的机器上的 clickonce 是 XP 我没有注意到需要sqlite dll in the GAC。肯定它已经在那里了。当我搬到 vista 时,我注意到有问题。检查了网络后我知道了it's impossible to add a dll to the Global Assembly Cache
现在我被卡住了,我想我已经碰壁了。任何人都可以分享他的一些经验吗?如果我能得到帮助,我愿意尝试更新程序块。

感谢您阅读本文!

4

2 回答 2

1

(不适合评论)

这里有一些有用的东西——您可以在本地部署 SQLCE dll,而不是作为先决条件安装,这样更容易部署。看看这篇文章

这是另一篇有用的文章:如何保护您的数据免受 ClickOnce 更新的影响。

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

于 2010-06-01T18:33:53.177 回答
0

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

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

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

删除项目中对该 dll 的引用,然后重新添加它。但是,不要从 GAC 中选择它,而是浏览到您刚刚添加到项目中的那个并选择它。在参考属性上,将“复制本地”设置为“真”。

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

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

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

于 2010-05-31T18:14:43.053 回答