gpt4 book ai didi

.net - 如何选择从Excel运行的.NET框架版本?

转载 作者:行者123 更新时间:2023-12-02 23:34:24 24 4
gpt4 key购买 nike

除了将 excel.exe.config 文件添加到 Office 二进制文件夹之外,如何指定 Excel 在运行 .NET dll 时使用 .NET Framework 版本 2.0?

我们的应用程序在 Excel 中运行,并使用 VBA 来调用 .NET 程序集中的托管代码。我相信执行此操作的教科书方法是将 excel.exe.config 添加到 Office 二进制目录,其中包含:

<?xml version="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>

此选项对于我们的客户来说是 Not Acceptable ,首先是因为他们根本不允许我们将文件添加到 Office 目录,即使他们这样做,我们也不能冒破坏某些使用 .NET v1.1(默认值)的应用程序的风险选择 Excel。

我们认为可行的解决方案是将 Excel.exe 文件从客户端的 Office 目录复制到我们自己的应用程序目录,在那里添加配置文件并执行该文件。它运行良好,但我们遇到了严重的安装问题,安装脚本无法找到正确的 Excel 版本。另外,这从一开始就是一个令人讨厌的拼凑。

欢迎任何想法。我想知道 DLL 中的非托管(非 .NET)代码层是否可以工作。关于如何执行此操作或一些更简单的替代方案的一些建议将不胜感激,因为这并非易事。

相关:

.NET app.config question

最佳答案

配置为 Excel 选择的运行时版本的另一种方法是更改​​以下注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\AppPatch\v2.0.50727.00000\excel.exe

默认情况下,此键强制 Excel 使用 1.1 框架;删除它(或重命名)会导致 Excel 加载可用的最新版本。

如果您担心破坏 Excel 中的 .NET 1.1,那么您最终可能必须运行 excel.exe 的第二个重命名副本。 .NET 框架只能加载到给定的 Windows 进程中一次,因此在单个 excel.exe 实例中,您必须在 1.1、2.0 或更高版本之间进行选择。

关于.net - 如何选择从Excel运行的.NET框架版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/790580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com