Dan*_*ham 5 c# clickonce redistributable publish prerequisites
我编写了一个 C# 应用程序,需要安装 Visual C++ 2010 可再发行组件,并且我使用 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++ 可再发行组件?如果安装了较新的版本,这真的是一个障碍吗?
这一切看起来都很脆弱,似乎应该有一个非常简单的修复方法。
ClickOnce 是应用程序的实际部署,而不是引导程序。发布 ClickOnce 应用程序将创建一个 setup.exe,它是为您安装必备组件的引导程序。你的问题出在先决条件上。
您可以使用引导程序清单生成器(或记事本)创建使 C++ 可再发行组件成为必备包所需的 XML 包信息,您可以从 Visual Studio/发布/先决条件对话框中选择该包。我建议您以这种方式设置先决条件,并查看 Bootstrapper 文件夹中的一些其他包(例如 SQLExpress)以了解它们是如何完成此操作的。