为ClickOnce前提条件指定VC ++可再发行版本

时间:2020-03-06 14:36:47  来源:igfitidea点击:

我的ClickOnce应用程序使用需要重新分发Visual C ++ 2005的第三方工具。如果仅安装了VC ++ 2008可再发行组件,则第三方工具将无法使用。但是,在Visual Studio 2008中,ClickOnce准备工作不允许为VC ++可再发行文件指定版本;它将添加VC ++ 2008的准备工作,这在大多数情况下是有意义的。但是,在这种情况下,需要较早的版本。 ClickOnce是必需的,因此合并模块是不可能的。关于如何指定版本的任何想法?

解决方案

我相信我们可以为应用打开清单文件,并修改应用应该链接到的redist版本。清单中的列表应与C:\ Windows \ WinSxS目录中的内容匹配。有一个CodeProject页面,它很好地描述了使用不同的可再发行组件。

如果可以找到安装了VS 2005的计算机,则解决方案应该不会太难。我们可以自定义项目的"发布"选项卡上的"准备工作"对话框中显示的内容。

  • 在安装了VS 2005的计算机上,转到\ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ BootStrapper \ Packages,然后将vsredist_x86文件夹复制到要从中发布的计算机上。
  • 重命名该文件夹,将其命名为vsredist_x86_2005或者类似名称。
  • 在文件夹内,编辑\ en \ package.xml文件。将<String Name =" DisplayName">标记更改为有意义的标记(Visual C ++ 2005 Runtime Libraries(x86)),以使其与现有的2008软件包区分开。
  • 将该文件夹复制到C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bootstrapper \ Packages。
  • 如果已打开,请重新启动Visual Studio。

现在,当我们打开"准备工作"对话框时,应该会看到2005软件包的新条目。我没有完全测试该解决方案,因此我可能错过了一些细节,但希望这可以入门。