Office 解决方案部署疑难解答 (2007 System)

更新: 2008 年 7 月

适用对象

本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。

项目类型

  • 文档级项目

  • 应用程序级项目

Microsoft Office 版本

  • 2007 Microsoft Office system

有关更多信息,请参见按应用程序和项目类型提供的功能

本节包含了一些提示,可用于解决在使用 Visual Studio Tools for Office 部署 Microsoft Office 解决方案时可能会遇到的一些常见问题。

更改程序集名称引起冲突

如果在部署解决方案之后更改“项目设计器”的“应用程序”页中的“程序集名称”值,发布工具会将安装包修改为包含一个 Setup.exe 文件和两个部署清单。部署两个清单文件可能会导致下面的情况:

  • 如果最终用户一并安装这两个版本,应用程序将相应加载两个外接程序。

  • 如果外接程序是在程序集名称更改之前安装的,最终用户将永远接收不到更新。

为了避免出现这种情况,请不要在部署解决方案之后更改解决方案的“程序集名称”值。

检查更新耗时很长

Microsoft Visual Studio Tools for the Microsoft Office system(3.0 版运行时)提供一个注册表项,允许管理员设置用于下载清单和解决方案的超时值。 

设置超时值

  1. 在注册表中,导航到下面一项:

    HKEY_CURRENT_USER\Software\Microsoft\VSTA

  2. 在“AddInTimeout”子项中以毫秒为单位设置超时值。

    如果“AddInTimeout”子项不存在,以 DWORD 形式创建该子项。

无法更新或发布到网络文件共享

如果网络文件共享上的 Office 解决方案的 Setup.exe 文件在发布更新的过程中在某个进程中锁定,则该解决方案可能会在更新过程中显示误导性的消息。该消息可能显示如下:“无法将‘setup.exe’添加到网站。此网站中已存在文件‘setup.exe’。”

若要帮助防止文件锁定,可以将该网络文件共享对最终用户设置为只读。但是,如果该网络文件共享中有文档,这些文档对最终用户也是只读的。

未安装 2007 Microsoft Office System 系统必备。

可以在安装包中添加 Microsoft .NET Framework、Visual Studio Tools for Office 运行时和 Microsoft Office 主互操作程序集,作为随 Visual Studio Tools for Office 解决方案部署的系统必备。有关如何安装主互操作程序集的信息,请参见安装 Visual Studio Tools for Office如何:安装 Office 主互操作程序集

使用“Localhost”发布可能导致安装问题

使用“https://localhost”作为文档级解决方案的发布或安装位置时,Visual Studio Tools for Office“发布向导”不会将该字符串转换为真实的计算机名称。这表示解决方案只能安装在开发计算机上。若要让部署的解决方案在开发计算机上使用 IIS,可为所有 HTTP/HTTPS/FTP 位置使用完全限定的名称,而不是使用 localhost。

加载的是缓存的程序集而不是更新的程序集

当项目输出路径位于网络文件共享上时,Fusion(.NET Framework 程序集的加载程序)加载程序集的缓存副本,该程序集是使用强名称签名的,而且自定义项的程序集版本不会更改。如果更新的程序集符合这些条件,则您在下次运行项目时将看不到更新,因为加载的是缓存的副本。

可以配置 Visual Studio,使得 Fusion 在每次运行项目时下载程序集。

下载程序集而不是加载缓存的副本

  1. 在“项目”菜单上单击“项目名称 属性”。

  2. 在“应用程序”页上,单击“程序集信息”。

  3. 在第一个“程序集版本”框中键入一个星号 (*)。

  4. 单击“确定”。

更改程序集版本后,可以继续使用强名称对程序集签名,并且 Fusion 将加载最新版本的自定义项。

文档级自定义项中的 XML 架构未注册

如果将 XML 架构附加到 2007 Microsoft Office system 的文档级项目中的文档中,该架构不会在用户的库中注册。您必须单独创建一个安装程序文件来执行注册。有关更多信息,请参见 XML 架构和数据 (Visual Studio Tools for Office)

当 URI 包含非 US-ASCII 字符时安装失败

将 Visual Studio Tools for Office 解决方案发布到 HTTP/HTTPS/FTP 位置时,路径不能包含任何不是 US-ASCII 的 Unicode 字符。这样的字符可能导致安装程序中出现不一致的行为。请为目标路径使用 US-ASCII 字符。

在开发计算机上发布和安装解决方案时,显示手动卸载的提示

在生成 Visual Studio Tools for Office 解决方案时,生成的版本会自动注册。如果以前在开发计算机上发布和安装过同一解决方案,则在下次生成、重新生成或发布后,Visual Studio Tools for Office 会检测到发布的版本和生成的版本的安装路径是不同的。错误消息会显示“由于已经安装了另一版本的自定义项且不能从该位置升级,无法安装该自定义项”。由于重新生成解决方案会更新注册表项,因此必须在发布、调试或运行第二个版本之前卸载第一个版本。

若要阻止出现该消息,请在开发计算机上创建另一个用户帐户来测试部署。或者,可以在下次发布、调试或重新生成该解决方案之前从计算机上的已安装程序列表中卸载该版本。

安装解决方案时出现“未捕获的异常”或“未找到方法”错误

通过打开部署清单(.vsto 文件)、Office 应用程序、文档或工作簿来安装使用 Visual Studio 2008 Service Pack 1 (SP1) 开发的 Office 解决方案时,您可能会看到下面的错误消息:

  • 未找到方法。

  • MissingMethodException。

  • 未捕获的异常。

若要防止这些错误消息出现,请通过运行安装程序来安装解决方案。

使用 Visual Studio 2008 SP1 开发的 Office 解决方案需要 Visual Studio Tools for Office 3.0 运行时的 SP1。安装程序将检查系统必备的正确版本(包括运行时的 SP1),并根据需要安装它们。然而,当您在不运行安装程序的情况下安装解决方案时,安装程序将不检查或安装系统必备。

在生成 Windows Installer 安装项目后外接程序的清单注册表项发生更改

有时候,在生成 Windows Installer 安装项目时,作为外接程序安装程序一部分的清单注册表项会从 .vsto 更改为 .dll.manifest。

若要解决此问题,请在不同的解决方案中创建安装项目,或者使用 CompanyName.AddinName 作为包含该外接程序名称的注册表项的值。

如果使用的是 Visual Studio 2008 SP1,则不需要使用此解决方法。

Office 解决方案的 ClickOnce 安装程序没有安装主互操作程序集

在运行 ClickOnce 为您的 Office 解决方案创建的安装程序时,Office 主互操作程序集 (PIA) 的安装程序仅在尚未安装任何 PIA 时才运行。

如果安装程序没有正确安装 PIA,则通过在安装目录中运行名为 o2007pia.msi 的安装程序文件来手动安装 PIA。

请参见

概念

ClickOnce 部署疑难解答

部署 Office 解决方案 (2007 System)

参考

疑难解答(如何实现 - Visual Studio Tools for Office)

修订记录

日期

历史记录

原因

2008 年 7 月

增加了有关对方案进行疑难解答的信息。

SP1 功能更改。