4

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

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

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

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

但是如果我不包括 x64 版本,那么 64 位用户就不能使用安装程序。

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

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

这一切似乎都很脆弱,似乎应该有一个非常简单的解决方法。

4

1 回答 1

0

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

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

于 2012-05-14T23:42:18.563 回答