【发布时间】:2009-04-26 09:54:56
【问题描述】:
除了将 excel.exe.config 文件添加到 Office Binary 文件夹之外,如何指定 Excel 在运行 .NET dll 时使用 .NET 框架 2.0 版?
我们的应用程序在 Excel 中运行,并使用 VBA 调用 .NET 程序集中的托管代码。我相信教科书的做法是将 excel.exe.config 添加到包含以下内容的 Office 二进制目录:
<?xml version="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
我们的客户不能接受此选项,首先因为他们根本不允许我们将文件添加到 Office 目录,即使他们这样做了,我们也不会冒险使用默认的 .NET v1.1 破坏某些应用程序选择 Excel。
我们认为可行的解决方案是将 Excel.exe 文件从客户端的 Office 目录复制到我们自己的应用程序目录,在其中添加配置文件并执行该文件。它运行良好,但我们遇到了严重的安装问题,安装脚本无法找到正确版本的 Excel。另外,它首先是一个令人讨厌的杂物。
欢迎任何想法。我想知道 DLL 中的一层非托管(非 .NET)代码是否可以工作。一些关于如何做到这一点的建议或一些更简单的替代方案将不胜感激,因为这很重要。
相关:
【问题讨论】:
-
我们最终通过升级到 .NET 4.0 完全解决了这个问题。 Excel 对 .NET 4 的行为与对 2 的行为不同。