.NET的app.config问题

我已经创build了一个使用CLR 2.0的Excel 2003加载项,并且此加载项将被安装在客户站点的数百台机器中。 问题是安装附件的一些机器并排运行.NET 1.1和.NET 2.0,插件在尝试加载时会引发错误。

我碰到的解决scheme是,在excel.exe所在的文件夹中创build一个excel.exe.config文件,将supportedRuntime版本设置为v2.0.50727。

因为这个解决scheme在我的情况下不能很好地扩展(因为这个插件被用在几百台机器上,用户可能甚至无法创build一个configuration文件),我想知道是否可以添加相同的supportedRuntime参数在我的插件app.config文件,它会工作。

如果这不起作用,你们知道还有什么我可以尝试吗?

什么是您收到的错误信息?

您所描述的问题不应出现在Office 2007中。但是,在Office 2003中,这对于所谓的“共享外接程序”(基于Extensibility.IDTExtensibility2接口(使用COM互操作性)的.NET外接程序)是一个已知问题。

微软已经发布了一个补丁,应该为每个使用加载项的用户安装。 你可以在这里获得补丁:

http://support.microsoft.com/kb/908002

使用configuration文件的解决scheme是一个非标准的解决scheme,但也应该解决以下文章中所述的问题:

http://nielsvanvliet.com/excel.html#Patch

如果要使用MSI安装程序来部署加载项,则应该检查安装项目属性中的前提条件,即Microsoft .NET Framework 2.0共享加载项支持更新(KB908002) 。 请注意,此修复程序只能为当前用户安装,即应禁用ALLUSERS设置。

更新:VS 2008的安装有点复杂。 看这里:

.NET Word 2003加载项可以安装在GAC之外吗?

那么,如果有数百台机器,我假设有组策略或其他一些运行pipe理脚本或设置文件的方法。 也许你可以创build一个小的MSI包来推出这个configuration文件或将它添加到启动脚本?