能否在GAC之外安装.NET Word 2003加载项?

能否在GAC之外安装.NET Word 2003加载项?,.net,ms-word,gac,.net,Ms Word,Gac,我创建了一个Word加载项组件和一个VisualStudio安装项目来安装该组件 在安装了Office 2003的干净计算机上,似乎无法在Word中加载外接程序组件 谷歌搜索这个问题表明,这是因为程序集不可信。我使用命令行工具给予程序集完全信任: caspol -af AssemblyName.dll 这没有什么区别,而且该内容仍然没有载入Word。caspol打印出一条消息“因为所有GAC程序集都始终获得完全信任,所以完全信任列表为no 不再有意义。您应该安装安全性中使用的所有程序集 GAC

我创建了一个Word加载项组件和一个VisualStudio安装项目来安装该组件

在安装了Office 2003的干净计算机上,似乎无法在Word中加载外接程序组件

谷歌搜索这个问题表明,这是因为程序集不可信。我使用命令行工具给予程序集完全信任:

caspol -af AssemblyName.dll
这没有什么区别,而且该内容仍然没有载入Word。caspol打印出一条消息“因为所有GAC程序集都始终获得完全信任,所以完全信任列表为no 不再有意义。您应该安装安全性中使用的所有程序集 GAC中确保其受信任的政策”

将安装程序更改为将程序集放入GAC中可以使其在Word中正确加载。但是该组件将来可能必须使用公共程序集,在我们的其他.NET应用程序之间共享,将这些库添加到GAC是不可取的


有人知道如何设置安全性,以允许在GAC外部安装组件时加载该组件吗?

我不认为将外接程序集放入GAC是强制性的。我认为你只是在部署中遗漏了一步

office应用程序(如MS Word)通过读取某些注册表项来加载其加载项。您很可能在部署期间未创建这些条目


要了解所有注册业务的详细信息,请参阅文章。另外,要了解部署office加载项的一般情况,请参阅文章

您肯定不必将assembies安装到GAC,也不必在加载项程序集上定义任何安全策略

您是否在Office 2003中使用.NET 2.0?Office 2003和Office XP在加载.NET 2.0加载项时都有问题。它们是使用.NET1.1框架加载的(如果机器上有,很可能是这样)。因此,您需要使用修补Office安装

您应该明确地将此修补程序包括在安装程序的先决条件中

在中查找更多详细信息

当然,您必须在目标系统上安装正确版本的PIA(几乎忘记了这一点,错误或缺少PIA是加载项无法加载的主要问题之一)

更新:KB908002需要在PC上安装VS 2005,以便将共享加载项支持更新添加到安装项目的先决条件对话框中。在这种情况下,必须使用以下变通方法:

如果您使用的是Visual Studio 2008,则必须按照以下所述操作,才能在“添加先决条件”对话框下列出KB908002:

  • 在安装了Visual Studio 2005的计算机上下载并安装修复程序
  • 导航到C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages,找到KB908002文件夹
  • 登录到已安装Visual Studio 2008的计算机,并将KB908002文件夹复制到C:\Program Files\Microsoft SDK\Windows\v6.0A\Bootstrapper\Packages
  • 现在,如果您转到VisualStudio2008计算机上的先决条件列表,您将看到列出的修复程序 另一个您根本不需要VS 2005的选项是:

  • 将修复程序下载到临时文件夹
  • 打开命令提示符,导航到修复程序所在的文件夹,然后启动以下命令以从自解压安装文件中解压文件:

    vs2005-kb908002-enu-x86.exe /C /T:C:\KB908002\
    cd \KB908002
    
    现在,文件夹C:\KB908002将包含三个文件:vs2005-KB908002-chs-x86.exe/C/T:C:\tmp\KB908002\tmp、setup.exe和bootstrapper.msi

  • 我们对bootstapper.msi的内容感兴趣,因此提取此文件的内容:

    msiexec /a bootstrapper.msi /qb TARGETDIR=C:\KB908002\tmp\
    cd tmp
    
  • 最后,我们将解压缩的packages文件夹复制到WindowsSDK的bootstrapper文件夹

    xcopy /E "C:\KB908002\tmp\SDK\BootStrapper\Packages" "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages"
    
  • 现在,如果您转到VisualStudio2008中的先决条件列表,您将看到列出的修复程序


  • 您可以手动运行以下命令来设置安全性,以允许word从GAC外部运行程序集。这将创建一个具有完全信任的新组,该组允许程序集运行

    caspol.exe -u -addgroup All_Code -url "\*"  FullTrust -n AssemblyName.dll
    

    Microsoft在以下站点为安装程序提供了一个自定义操作示例,允许您将此命令作为安装程序自定义操作。

    感谢您的反馈意见。我们正在使用Visual Studio 2008构建加载项,目标是.NET 2.0平台,因此KB补丁不适用于我们的情况。我们已经安装了正确的PIA,并且在GAC中它确实正确加载,因此我认为所有必需的组件都在那里John,KB908002修补程序不依赖于Visual Studio版本。Office XP/2003需要它才能加载.NET 2.0程序集。这意味着修补程序适用于您的情况。你试过了吗?(继续)也许我在帖子中不够清楚,但此修补程序必须安装在安装Office+加载项的目标计算机上。我尝试运行KB908002修补程序,但出现了一条错误消息:“Microsoft Visual Studio 2005未找到”,这就是为什么我不认为它适用于Sorry,John,我不知道安装程序检查VS2005是否存在。我将更新我的答案。谢谢-很好的建议。我仔细检查了所有注册表设置,它们看起来都是正确的