请单击以进行评分并提供反馈
MSDN
MSDN Library
 演练:将文档和程序集部署到不同的本地文件夹

  开启低带宽视图
此页面仅适用于
Microsoft Visual Studio 2005/.NET Framework 2.0

同时提供下列产品的其他版本:
Visual Studio Tools for the Microsoft Office System
演练:将文档和程序集部署到不同的本地文件夹

注意 必需的应用程序

只有安装了必需的应用程序后,本主题中的功能才可用。

有关更多信息,请参见 产品组合可用的功能

  • 下列开发环境之一:

    VSTO 2005

    - 或 -

    Visual Studio Team System

  • Microsoft Office 2003

本演练演示如何部署文档级自定义项,以使文档和程序集位于最终用户计算机上的不同文件夹中。此类型的部署称为本地/本地部署模型。有关部署解决方案的选项的更多信息,请参见 部署模型。有关文档级自定义项的更多信息,请参见 Office 解决方案结构概述

本演练演示如下任务:

  • 编辑文档中嵌入的应用程序清单以指向程序集。

  • 向位于本地文件夹中的 Microsoft Visual Studio 2005 Tools for the Microsoft Office System 解决方案程序集授予完全信任。

若要完成此演练,您需要:

  • Visual Studio Tools for Office。

  • Microsoft Office Word 2003 或 Microsoft Office Excel 2003。

    Note注意

    此演练假定您部署的是 Word 解决方案。如果您要使用 Excel 解决方案来执行演练,请在所有代码示例中使用 Excel 项目名替换 Word 项目名。

  • 在开发计算机上具有管理员特权,以便您可以设置安全策略。

在以下步骤中,将创建一个用于部署的基本 Visual Studio Tools for Office 解决方案。如果您已经有一个要部署的解决方案,则可以跳过本节并前进至“部署解决方案”。

创建要部署的解决方案

  1. 创建名为 WordDeployment 的 Word 文档项目。确保已选择“创建新文档”。有关更多信息,请参见 如何:创建 Visual Studio Tools for Office 项目

  2. 在“解决方案资源管理器”中,右击 ThisDocument(对于 Word)代码文件,再单击“查看代码”。

  3. 将下面的代码添加到 ThisDocument_Startup 事件处理程序。文档打开时此代码将显示一条消息,以便于验证解决方案是否已成功部署。

    Visual Basic
    MessageBox.Show("The deployment is successful")
    

    C#
    MessageBox.Show("The deployment is successful");
    

    有关 Startup 事件的更多信息,请参见 Visual Studio Tools for Office 项目事件

  4. 按 F5 生成并运行项目。验证消息是否显示。

在以下步骤中,您将把文档和程序集部署到开发计算机上的不同文件夹中。

部署解决方案

  1. 在 Windows 系统驱动器 (%SystemDrive%) 的根目录下创建名为 TestDeployDocumentTestDeployAssembly 的文件夹。例如,如果您的系统驱动器为 C,则新文件夹将为 C:\TestDeployDocument 和 C:\TestDeployAssembly。

  2. 将文档从生成输出文件夹(通常是 <project folder>\bin\debug 或 <project folder>\bin\release)复制到 %SystemDrive%\TestDeployDocument 文件夹,并将程序集从生成输出文件夹复制到 %SystemDrive%\TestDeployAssembly 文件夹。

  3. 打开 %SystemDrive%\TestDeployDocument 文件夹中的文档。将显示一条错误信息,指出没有找到或未能加载自定义项程序集。

    当生成解决方案时,文档假定程序集和文档位于同一文件夹中。程序集的位置存储在嵌入文档中的应用程序清单中。如果您将文档和程序集部署到其他文件夹,则必须编辑嵌入的应用程序清单以指定新的程序集路径。您将在下一节中执行此步骤。

  4. 单击“确定”,然后关闭文档。

在以下步骤中,您将使用 ServerDocument 类编辑文档中嵌入的应用程序清单以指向自定义项程序集的新位置。使用 ServerDocument 编辑嵌入的应用程序清单的代码必须位于与正在部署的文档关联的 Visual Studio Tools for Office 项目程序集以外。

编辑嵌入的应用程序清单

  1. 创建新的控制台应用程序项目。有关更多信息,请参见 如何:创建解决方案和项目

  2. 将对 Microsoft.VisualStudio.Tools.Applications.Runtime.dll 程序集的引用添加到新项目。

  3. 将下面的 using 语句 (C#) 或 Imports 语句 (Visual Basic) 添加到 Program.cs 或 Module1.vb 代码文件的顶部。

    Visual Basic
    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    

    C#
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  4. Main 方法中添加下面的代码以更新嵌入的应用程序清单。将 <full document path> 替换为文档在开发计算机上开发位置中的完整路径 -- 例如,C:\TestDeployDocument\WordDeployment.doc。将 <full assembly path> 替换为程序集在将部署到的文件夹中的完整路径 -- 例如,C:\TestDeployAssembly\WordDeployment.dll。

    Visual Basic
    Dim sd As ServerDocument = Nothing
    Try
        sd = New ServerDocument("<full document path>")
        sd.AppManifest.Dependency.AssemblyPath = _
            "<full assembly path>"
        sd.Save()
    Finally
        If Not sd Is Nothing Then
            sd.Close()
        End If
    End Try
    

    C#
    ServerDocument sd = null;
    try
    {
        sd = new ServerDocument(@"<full document path>");
        sd.AppManifest.Dependency.AssemblyPath = 
            @"<full assembly path>";
        sd.Save();
    }
    finally
    {
        if (sd != null)
        {
            sd.Close();
        }
    }
    
  5. 按 F5 生成并运行项目。控制台应用程序将更新嵌入的应用程序清单中的程序集路径,然后关闭。

    Note注意

    确保尚未在 Word 或项目设计器的实例中打开文档。如果已经打开该文档,则使用 ServerDocument 尝试访问该文档将失败。

  6. 关闭控制台应用程序项目。

  7. 打开 %SystemDrive%\TestDeployDocument 文件夹中的文档。将显示一条错误信息,指出当前的 .NET 安全策略不允许该自定义项运行。这是由于您尚未对该程序集授予完全信任。

  8. 单击“确定”,然后关闭文档。

在以下步骤中,您将在 .NET Framework 2.0 安全策略中向程序集授予完全信任。本演练将使用代码访问安全策略工具 (Caspol.exe) 向程序集授予完全信任。有关使用 Caspol.exe 的更多信息,请参见 代码访问安全策略工具 (Caspol.exe)使用代码访问安全策略工具 (Caspol.exe) 配置安全策略

Security note安全注意

为完成本演练而基于 URL 证据设置安全策略有几个基本步骤。如果您不确定位置是否安全,请不要使用这些步骤向实际解决方案中的程序集授予信任。决定实际解决方案的安全性时,还应根据更多的证据而不仅限于程序集的 URL 决定。有关更多信息,请参见 运行 Office 解决方案的安全要求

向程序集授予完全信任

  1. 单击“开始”,指向“所有程序”,再指向“附件”,然后单击“命令提示符”。

  2. 键入以下命令创建一个向程序集授予完全信任的新代码组。

    %windir%\Microsoft.NET\Framework\v2.0.50727\caspol -u -ag All_Code -url "<full assembly path>" FullTrust -n "Test_Deployment"

    <full assembly path> 替换为程序集在开发计算机上的完整路径 -- 例如,C:\TestDeployAssembly\WordDeployment.dll。

    -n 参数将为新代码组指定名称。此参数不是必需的,但指定标签可以在本演练完成后更容易识别和移除新代码组。

  3. 出现提示时键入“yes”确认要执行此操作,然后按 Enter。

  4. 打开 %SystemDrive%\TestDeployDocument 文件夹中的文档,并确认消息出现。

  5. 单击“确定”,然后关闭文档。

也可以将文档和程序集部署到同一个本地文件夹中,或者可以将文档和程序集部署到网络文件夹。有关更多信息,请参见下列演练:

社区内容   什么是社区内容?
添加新内容 RSS  批注
Processing
© 2009 Microsoft Corporation 版权所有。 保留所有权利  |  商标  |  隐私权声明
Page view tracker