部署使用 Visual Studio Tools for Office 创建的 Microsoft Office 2003 外接程序通常意味着要使用以下文件:
l 主外接程序程序集和任何依赖程序集(如资源、附属或帮助器库)。
l 应用程序清单。
l 部署清单(如果适用的话)。
在部署解决方案时,请考虑下列基本准则:
l 用户必须已安装 .NET Framework。有关更多信息,请参见再发行 .NET Framework和使用 .NET Framework 的多个版本。
l 用户必须已安装 Visual Studio 2005 Tools for Office Second Edition 运行时。有关更多信息,请参见 如何:准备最终用户计算机以运行 Office 解决方案 (2003 System)。
l Visual Studio Tools for Office 运行时包括 AddinLoader.dll,即使用 Visual Studio Tools for Office 创建的 Microsoft Office 2003 外接程序的加载程序。有关更多信息,请参见 应用程序级外接程序的体系结构。
l 每台客户端计算机都必须有运行外接程序所需的一组注册表项。有关更多信息,请参见 应用程序级外接程序的注册表项。
l 外接程序程序集和所有的引用程序集必须在每一个最终用户的安全策略中被授予完全信任。有关更多信息,请参见 运行 Office 解决方案的安全要求 (2003 System)。
若要部署外接程序,请执行以下步骤:
l 将生成过程生成的应用程序清单以及需要的注册表项复制到每台客户端计算机。
l 将外接程序程序集(以及可选的部署清单)复制到部署位置。
部署位置可以是客户端计算机上的本地文件夹,也可以是远程位置(如网络共享)。有关更多信息,请参见部署模型 (2003 System)和如何:部署 Office 解决方案 (2003 System)。
使用安装项目
使用 Visual Studio Tools for Office 创建外接程序项目时,会将一个安装项目自动添加到解决方案。如果要将解决方案直接部署到客户端计算机,您可以使用此安装项目来生成 Windows Installer (.msi) 文件。安装程序会将解决方案文件复制到客户端计算机,并创建运行外接程序所需的注册表项。有关该安装项目的更多信息,请参见应用程序级外接程序的安装项目 (2003 System)。有关必需的注册表项的更多信息,请参见应用程序级外接程序的注册表项。
安装项目的限制
默认安装项目有一些限制:
l 默认情况下,安装项目不会设置安全策略。必须向外接程序程序集和任何引用的程序集授予完全信任,外接程序才能运行。您可以向安装项目添加一个步骤以配置安全策略,也可以由管理员设置适当的安全策略。有关更多信息,请参见 运行 Office 解决方案的安全要求 (2003 System)。
l 默认情况下,安装项目不会检查或安装 Visual Studio Tools for Office 运行时以及 Microsoft Office 应用程序的主互操作程序集 (PIA)。如果最终用户计算机上未安装这些组件,外接程序将不会运行。有关必备条件的更多信息,请参见 如何:准备最终用户计算机以运行 Office 解决方案 (2003 System)。
使用发布向导
如果要启用自动程序集更新,您可以使用“发布向导”。“发布向导”将为解决方案创建部署清单,并将所有所需的文件复制到部署位置。
“解决方案资源管理器”中的项目的快捷菜单上的“发布”命令启动“发布向导”。您标识要作为解决方案发布目标的文件夹的位置,向导会将部署清单复制到该文件夹中。该向导还会将程序集和已更新的应用程序清单复制到主部署文件夹的子文件夹中。该子文件夹名称包含版本号。如果在“项目设计器”的“发布”窗格中选择了“自动递增每个版本的修订号”选项,则每次发布解决方案时,都会创建一个新的子文件夹。较旧版本仍然可用。应用程序和部署清单确保解决方案始终使用正确的程序集。有关更多信息,请参见Office 解决方案中的应用程序和部署清单、如何:使用发布向导部署解决方案文件 (2003 System)和“项目设计器”->“发布”页 (2007 System)。
发布向导的限制
“发布向导”有一些限制:
l “发布向导”不会创建运行外接程序所需的注册表项。如果使用“发布向导”部署外接程序,您必须自己创建这些注册表项,例如,通过使用注册表 (.reg) 文件创建。“发布向导”也不会覆盖或移除当您生成项目时在开发计算机上创建的注册表项。有关生成项目的更多信息,请参见 Office 解决方案生成过程概述。有关必需的注册表项的更多信息,请参见应用程序级外接程序的注册表项。
l “发布向导”不会在最终用户的安全策略中向外接程序程序集授予完全信任。必须向外接程序程序集和任何引用的程序集授予完全信任,外接程序才能运行。有关更多信息,请参见 运行 Office 解决方案的安全要求 (2003 System)。
更新已部署的程序集(版本控制)
如果将名为 OutlookAddin1 的解决方案部署到文件夹 C:\DeployFolder,则文件结构类似于:
C:\DeployFolder
此文件夹包含以下文件和子文件夹:
l 部署清单 (OutlookAddin1.application)。
C:\DeployFolder\OutlookAddin1_1.0.0.0
此文件夹包含以下文件:
l 程序集。
l 应用程序清单 (OutlookAddin1.dll.manifest)。
l 部署清单的副本。
如果更新程序集并重新发布解决方案,则目录结构将如下所示:
C:\DeployFolder
此文件夹包含以下文件和子文件夹:
l 部署清单(已更新以指向 C:\DeployFolder\OutlookAddin1_1.0.0.1 中的应用程序清单)。
C:\DeployFolder\OutlookAddin1_1.0.0.0
此文件夹包含以下文件:
l 原始程序集。
l 原始应用程序清单。
l 原始部署清单。
C:\DeployFolder\OutlookAddin1_1.0.0.1
此文件夹包含以下文件:
l 已更新的程序集。
l 已更新的应用程序清单。
l 已更新的部署清单的副本。
每次更新外接程序程序集时都将重复此结构。
从命令行中使用 MSBuild
还可以在命令提示符处使用 MSBuild 发布解决方案。在命令提示符处使用 MSBuild 时,您可以将解决方案文件发布到一个位置,并同时修改部署清单和更新的应用程序清单以指向另一个位置。若要在命令提示符处运行 MSBuild 以发布解决方案,请使用以下语法。
msbuild.exe /target:Publish /property:UpdateUrl=<update location> /property:PublishDir=<publish location> <project file>
例如,如果您要将名为 OutlookAddin1 的 C# 项目发布到共享文件夹 \\PublishServer\PublishFolder,但希望在以后将部署清单、更新的应用程序清单和外接程序程序集移动到共享文件夹 \\DeploymentServer\DeploymentFolder,您将运行以下命令。
msbuild.exe /target:Publish /property:PublishDir=\\PublishServer\PublishFolder\ /property:UpdateUrl=\\DeploymentServer\DeploymentFolder\ C:\OutlookAddin1\OutlookAddin1.csproj
有关在命令提示符处使用 MSBuild 的更多信息,请参见 从命令行生成 ClickOnce 应用程序。
在 Windows Vista 上部署外接程序
如果最终用户在 Windows Vista 上运行您的解决方案,您必须在设置部署时考虑 Windows Vista 安全限制,否则用户将无法安装更新。
如果使用“发布向导”将外接程序更新发布到 HTTP 或网络位置,则运行 Windows Vista 的计算机上的最终用户只有在以下情况下才能加载程序集更新:
l 应用程序清单安装在最终用户计算机上可由具有标准权限的应用程序修改的文件夹中。
- 或 -
l 用户使用管理员权限运行 Microsoft Office 应用程序。
当您发布外接程序更新后,Visual Studio Tools for Office 运行时会尝试在用户下次打开应用程序时将更新的应用程序清单复制到最终用户计算机。然后,该运行时将使用更新的清单中的信息来加载更新的程序集。在 Windows Vista 上,用标准权限运行的应用程序无法覆盖某些文件夹(包括 %ProgramFiles%)中的文件。因此,如果应用程序清单安装在需要管理员权限的文件夹中,则只有在用户以管理员身份运行应用程序时,应用程序才能加载更新的程序集。或者,如果应用程序清单安装在不需要管理员权限的文件夹(如 %UserProfile%)中,用户也可以用标准权限运行应用程序。
应用程序和部署清单
应用程序和部署清单使外接程序能够使用最新的程序集更新自身。有关更多信息,请参见 Office 解决方案中的应用程序和部署清单。
在解决方案的生存期间,您可能为解决方案更改几次应用程序或部署清单。要更新清单的原因主要有两个:
l 部署解决方案程序集的新版本。有关更多信息,请参见 如何:更新已部署的程序集文件 (2003 System)。
l 更改解决方案程序集的位置。有关更多信息,请参见 如何:更改应用程序级外接程序的位置 (2003 System)。
请参见