运行迁移到 .NET Framework 4 的 Office 项目所需的更改

更新:2010 年 5 月

如果 Office 项目的目标框架从早期版本 .NET Framework 更改为 .NET Framework 4,则必须执行以下任务以确保该解决方案可在开发计算机和最终用户计算机上运行:

  • 如果从 Visual Studio 2008 升级了项目,请从该项目中移除 SecurityTransparentAttribute

  • 在 Visual Studio 中执行 Clean 命令,以便能够在开发计算机上运行或调试项目。

  • 更新项目的 .NET Framework 系统必备组件。

  • 如果在更改目标框架之前使用 ClickOnce 部署了解决方案,则最终用户还必须重新安装该解决方案。

有关其中每项任务的更多信息,请参见以下各节。

从已从 Visual Studio 2008 升级的项目移除 SecurityTransparent 特性

如果从 Visual Studio 2008 升级 Office 项目,并且该项目的目标框架随后更改为 .NET Framework 4,则必须从该项目移除 SecurityTransparentAttribute。Visual Studio 不会自动移除此特性。如果不移除此特性,则解决方案将无法加载,并且系统会报告以下错误。

“类型‘项目中的宿主项类’违反了继承安全性规则。 派生类型必须与基类型的安全可访问性匹配或者比基类型的安全可访问性低。”

有关 Visual Studio 可以将升级项目的目标框架更改为 .NET Framework 4 的条件的更多信息,请参见升级和迁移 Office 解决方案

移除 SecurityTransparentAttribute

  1. 在 Visual Studio 中打开项目后,打开**“解决方案资源管理器”**。

  2. 在**“属性”节点(适用于 C#)或“我的项目”**节点(适用于 Visual Basic)下,双击 AssemblyInfo 代码文件以在代码编辑器中打开。

    提示

    在 Visual Basic 项目中,必须单击“解决方案资源管理器”中的“显示所有文件”按钮,才能查看 AssemblyInfo 代码文件。

  3. 找到 SecurityTransparentAttribute,并从该文件中移除或注释掉该特性。

    <Assembly: SecurityTransparent()>
    
    [assembly: SecurityTransparent()]
    

执行“清理”命令以在开发计算机上调试或运行项目

如果 Office 项目是在其目标框架更改为 .NET Framework 4 之前生成的,则必须执行**“清理”命令,然后在更改目标框架后重新生成该项目。 如果不执行“清理”**命令,则在尝试调试或或运行重定目标的项目时,会收到 COMException

有关**“清理”**命令的更多信息,请参见 Office 解决方案生成过程概述

更新系统必备组件以进行部署

将 Office 项目的目标重定为 .NET Framework 4 时,还必须在**“系统必备”**对话框中更新对应的 .NET Framework 系统必备组件。 否则,ClickOnce 部署或 Windows Installer 安装项目会检查并安装早期版本的 .NET Framework。

有关更新系统必备组件以部署到最终用户计算机的更多信息,请参见如何:在最终用户计算机上安装系统必备组件以便运行 Office 解决方案

在最终用户计算机上重新安装解决方案

如果使用 ClickOnce 部署面向 .NET Framework 3.5 的 Office 解决方案,然后将该项目的目标重定为 .NET Framework 4,则最终用户必须卸载该解决方案,然后在重新发布之后重新安装该解决方案。 如果重新发布重定目标的解决方案并在最终用户计算机上更新该解决方案,则最终用户运行更新的解决方案时将收到 COMException

有关卸载解决方案的更多信息,请参见如何:卸载 ClickOnce Office 解决方案

请参见

概念

将 Office 解决方案迁移到 .NET Framework 4

修订记录

日期

修订记录

原因

2010 年 5 月

增加了有关从从 Visual Studio 2008 升级的项目中移除 SecurityTransparentAttribute 的部分。

信息补充。