我正在尝试创建一个共享插件使用VS2008 for Office XP (确切地说是Excel)。但是,在Visual studio中创建项目并将引用更改为Office XP (除了扩展性之外,我似乎找不到适用于office xp的副本),并将excel.exe添加到引用中。我现在似乎无法在任何计算机上安装该插件。
有没有人有关于使用VS2008编写Office XP插件的指南(我可能会添加Com插件)?
有没有人知道我应该拥有的引用,或者之前我应该在pc上安装的东西?
我有三台测试pcs,这一台上装有office xp,2003和2007,我可以用2003年的引用写一个插件,在这个机器上运行,但不能在其他机器上运行。一个只安装了office xp,但也安装了office xp PIA和.NET;另一个只安装了office xp。
任何帮助都是非常有价值的。
发布于 2009-01-02 10:25:22
最后我发现了这个的问题。
问题来自KB条目908002。不幸的是,要运行修复程序,您需要安装Visual Studio 2005和Office 2003,否则它不会部署修复程序,所以我已经多次忽略了这一点。最后,我在一台备用机器上找到了VS2005和Office2003的旧拷贝,安装了补丁,创建了一个安装程序,并在装有Office XP的机器上试用了一下,一切都很正常。
要在装有Office XP的任何计算机上工作,需要两个修复程序:
extensibilityMSM.msi - installs the extensibility.dll
lockbagRegKey.msi - adds a fix to a registry key我找不到这些可以从KB908002补丁中单独下载的文件,但我在本地有副本。
在应用了这些修复之后,使用COM插件就很容易了,就像使用VSTO一样,我花了不到一个小时就写出了实际的代码。我并没有想办法在我的MSI安装程序中包含这些作为先决条件。
任何问题都可以在评论中提出来,我会尽快更新。
发布于 2008-12-30 18:51:00
作为先决条件,您需要安装PIA。加载项是否已安装,或者安装失败?主机应用程序(Excel)可能会禁止在启动时行为不佳的外接程序。您可以在Excel的附加模块设置对话框中重新启用它。
发布于 2011-09-20 11:30:46
@PintSizedCat - Here是一个msdn博客的链接,该博客展示了如何在不安装VS2005的情况下提取msi。
请参阅“构建共享COM外接程序安装项目”一节-使用命令行:
/C:“C:\/T”vs2005-kb908002-C x85.exe测试
对我们来说,它是带有.Net 2.0的Excel2003,缺少extensibility.dll。我不认为VS2008 / VS2010将此作为先决条件。dll是不可再分发的(根据此blog -请参阅“答案”部分)-您必须使用msi来重新分发它。
https://stackoverflow.com/questions/400180
复制相似问题