部署应用程序或组件的多个版本

更新:2007 年 11 月

可以通过以下几种方法部署计划并行执行的程序集:

  • 私有部署。

    可以将程序集部署到应用程序目录或应用程序目录的子目录中。公共语言运行库使用默认的绑定决策行为定位程序集。有关程序集绑定决策的更多信息,请参见运行库如何定位程序集

    对于部署用于并行执行的应用程序,以私有方式部署的程序集是一种很方便的方法,因为这样的程序集不会影响计算机上的其他程序集。而且,对于具有强名称的程序集和不具有强名称的程序集,您都可以采用私有方式进行部署。不必将具有强名称的程序集部署到全局程序集缓存中;可以将它们部署到应用程序目录中。如果您没有计划在多个应用程序间共享某一程序集,请以私有方式将该程序集部署到应用程序目录中。

    私有部署的另一个好处是,它能够使用 XCOPY 部署应用程序。

  • 全局程序集缓存部署。

    在全局程序集缓存中安装程序集,使该程序集对于计算机上的所有应用程序都是可见的。如果需要在多个应用程序间共享程序集,则适合使用这类部署。注意,只有具有强名称的程序集能够被部署到全局程序集缓存中。

    Windows Installer 和全局程序集缓存工具 (Gacutil.exe) 都可在全局程序集缓存中安装程序集。在开发和测试期间适合使用全局程序集缓存工具,而 Windows Installer 是用于实际的应用程序部署的首选工具。Windows Installer 跟踪对安装在全局程序集缓存中的程序集的引用,以确保在计算机上的应用程序仍需要共享程序集时,该程序集不会被卸载。有关安装并行应用程序的更多信息,请参见使用 Windows Installer 安装并行 (side-by-side) 执行的应用程序和组件

  • 使用 <codeBase> 元素的部署。

    可以将 <codeBase> 元素包括在应用程序配置文件中,以帮助运行库定位程序集。运行库使用 <codeBase> 元素中指定的位置,而不使用定位程序集的默认规则来搜索程序集。<codeBase> 元素既可用于具有强名称的程序集,也可用于不具有强名称的程序集。

    对于不具有强名称的程序集,<codeBase> 元素必须与应用程序目录相关。这一要求保证了并行执行的过程中不出现命名冲突;发生该冲突时,运行库会找到两个名称相同的程序集。

    对于具有强名称的程序集,<codeBase> 元素可以将运行库指向任一位置。<codeBase> 元素提供了一种允许不使用全局程序集缓存即可在不同应用程序间共享具有强名称的程序集的机制。但是,在更改版本时,如果输入错误的 <codeBase> 元素,则很容易破坏应用程序,因此,在使用该部署方法时应小心。

有关部署的完整讨论内容,请参见部署应用程序

请参见

概念

使用 Windows Installer 安装并行 (Side-by-Side) 执行的应用程序和组件

并行 (Side-by-Side) 执行的应用程序和组件的创建指南

其他资源

部署 .NET Framework 应用程序

创建应用程序或组件的多个版本