我制作了一个 C# .NET dll,我想从 VBA 运行它而不注册它。 我找到了解决方案there并且它可以完美工作,但前提是程序集是使用 Framework NET 3.5 或更早版本进行的。 使用 Framework 4.0,我收到错误“此程序集是由比当前加载的运行时更新的运行时构建的,无法加载”。 有人可以帮助我吗?
最佳答案
所以,我找到了解决方案。
默认情况下,Excel 使用 1.1 框架,如所述 here 。 如果您查看了 Windows 注册表,
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\AppPatch\YOUR_FRAMEWORK_VERSION\excel.exe\
可以看到目标版本是v1.1..... 因此,解决方案是制作一个强制使用 Framework 版本 4 的 Excel.exe.config 文件,如所述 here
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319"/>
</startup>
</configuration>
关于c# - VBA C# DLL 未注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35174557/