ClickOnce Installer先决条件:如何自动检测所需版本的Visual C ++运行时

时间:2012-05-12 02:48:04

标签: c# clickonce publish prerequisites redistributable

我编写了一个C#应用程序,需要安装Visual C ++ 2010可再发行组件,我在Visual Studio中使用内置的“发布”机制来分发应用程序 - 它使用了Microsoft的“ClickOnce”安装程序技术

我发现我需要点击“发布”页面上的“先决条件”按钮,但是存在问题。

不知道用户是x86还是64位,我必须勾选可再发行的x86和x64版本。

但是如果x86用户安装它,则会出现错误:“系统组件Visual C ++ 2010运行时库(x64)的先决条件检查失败,并显示以下错误消息:”支持安装Visual C ++ 2010运行时库(x64)仅适用于x64机器。“

但如果我不包含x64版本,则64位用户无法使用安装程序。

另一个问题是某些用户收到错误“在计算机上检测到更新版本的Microsoft Visual C ++ 2010 Redistributable”,安装程序失败。

这整件事看起来像是一团糟。 ClickOnce安装程序技术是否足够聪明,无法确定用户是否需要x86或64位版本的C ++可再发行组件?如果安装了更新的版本,那真的是一个显示器吗?

这一切看起来都非常脆弱,似乎应该有一个非常简单的修复方法。

1 个答案:

答案 0 :(得分:0)

ClickOnce是应用程序的实际部署,而不是引导程序。发布ClickOnce应用程序将创建一个setup.exe,它是一个为您安装先决条件的引导程序。你的问题是先决条件。

您可以使用引导程序清单生成器(或记事本)来创建使C ++可再发行到必备软件包所需的XML软件包信息,您可以从Visual Studio / Publish / Prerequisites对话框中进行选择。我建议你以这种方式设置先决条件,并查看Bootstrapper文件夹中的一些其他软件包(如SQLExpress),看看他们是如何做到这一点的。