2012-05-12 21 views
4

我已经编写了一个C#应用程序,要求安装Visual C++ 2010可再发行组件,并且在Visual中使用内置的“发布”机制Studio分发应用程序 - 使用Microsoft的“ClickOnce”安装程序技术。ClickOnce安装程序先决条件:如何自动检测所需版本的Visual C++运行时

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

不知道用户是x86还是64位,我必须勾选可再发行组件的x86和x64版本。但是,如果x86用户安装它,则会出现错误:“系统组件Visual C++ 2010运行时库(x64)的先决条件检查失败,并显示以下错误消息:”Visual C++ 2010运行时库(x64)的安装为仅在x64机器支持。“

但是,如果我不包括x64版本,则64位用户不能用户安装。

另一个问题是,一些用户收到错误”一个更新版本的Microsoft Visual C++ 2010可再发行组件已在机器上检测到“,并且安装程序失败。

这整件事似乎是一团糟。 ClickOnce安装程序技术不够聪明,无法确定用户是否需要x86或64位版本的C++可再发行组件?如果安装了更新的版本,那真的是一个表演塞?

这一切似乎非常脆弱,它似乎应该有一个非常简单的修复它。

回答

0

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

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

相关问题