1

情况如下:

  • 我有一个安装 C# 可执行文件的 Visual Studio 2010安装项目
  • 安装包含一个引用 C++ dll 的 C# dll
  • C++ dll 需要 C++ 2008

问题是让安装项目安装 C++ 2010 库非常容易,但我在尝试安装 2008 时运气不佳。

  • 对于 2010,只需在项目的 Properties > Prerequisites 部分中选择 C++ 2010 即可。2008 年不是一个选择。
  • 我找到了很多关于使用合并模块安装 C++ 可再发行组件的文档。但是,在我机器的 C:\Program Files (x86)\Common Files\Merge Modules 目录中,我只有 C++ 2010 合并模块。我无法从任何有信誉的来源找到可供下载的 C++ 2008 合并模块。
  • 我可以很容易地下载可再发行安装程序,但我不知道如何让安装项目使用它。
  • 我发现这篇关于创建引导程序包的MSDN 文章。然而,Bootstrapper Manifest Generator似乎只适用于 VS2008 和 VS2005(见评论)。

我无权/能力执行以下任何操作,我认为这可以解决问题:

  • 安装 VS2008 以获得正确的合并模块
  • 使用不同的安装程序,例如 InstallShield。
  • 重新编译 C++ dll 以使用 2010 库。

如果有人以前遇到并解决过这个问题,我欢迎您的帮助。

4

2 回答 2

1

合并模块随附 VS2008 和 VS2008 许可证。创建依赖于 2008 运行时的 C++ dll 的人可能拥有 VS2008 的许可证。您可以要求他们提供给您——这样做是合法的。

于 2013-03-25T16:26:53.990 回答
1

为了在 VS 2010 中添加 C++ 2008 可再发行组件作为先决条件,我发现以下步骤是有效的:

  1. 确定可再发行产品的产品密钥。这里有一个很好的列表:http: //blogs.msdn.com/b/astebner/archive/2009/01/29/9384143.aspx
  2. 将安装可执行文件和相应的 xml 文件添加到引导程序目录 ( C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages),如下所述:http: //insomniacgeek.com/clickonce-4-0-package-for-the-c-2008-sp1-redist-atl-security -更新/
  3. 重新启动 VS,并检查安装项目的先决条件列表。现在所有人都应该在场。

另外,顺便说一句,我发现除非您采取此问题中概述的步骤:Visual C++ 2010 Runtime Libraries 先决条件不断弹出在 VS 2010 创建的安装程序上,您的 C++ 2010 可再发行组件将始终尝试安装,即使它们已经存在.

于 2013-03-28T19:20:54.547 回答