gpt4 book ai didi

c# - Excel DNA 代码访问安全性

转载 作者:行者123 更新时间:2023-11-30 16:59:36 26 4
gpt4 key购买 nike

我有一个简单的 excel DNA 插件,在版本 0.32 中创建。

在我的加载项中,我正在动态加载在网络驱动器上找到的另一个程序集。

当我将我的 excel DNA 加载项加载到 Excel 并运行我的 Excel-DNA 函数时,出现以下错误:

{"This method implicitly uses CAS policy, which has been obsoleted by the .NET Framework. In order to enable CAS policy for compatibility reasons, please use the NetFx40_LegacySecurityPolicy configuration switch. Please see http://go.microsoft.com/fwlink/?LinkID=155570 for more information."}

我已经在 Visual Studio 中为 ExcelDNA 项目创建了一个 .config 文件,如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="DbPath" value="testString"/>
</appSettings>
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true" />
<legacyCasPolicy enabled="true"/>
<loadFromRemoteSources enabled="true"/>
</runtime>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>

关于如何解决这个问题有什么想法吗?

如有任何帮助,我们将不胜感激。

最佳答案

如果我没记错的话,您指定的实际 .config 文件必须与加载您的加载项的可执行进程一起驻留。在本例中,它将是 Excel.exe,因此配置应称为 Excel.exe.config,并且存在于 Excel 目录中。

要从网络共享加载库,同时使用 .NET 4.0 中对代码访问安全的旧版支持,您可能必须使用caspol.exe 工具 ( click here for .NET 4.5 details )。这可能取决于您如何部署和签署您尝试加载的库。该工具通常位于以下路径:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\CasPol.exe

使用向该工具发出的示例命令行:

CasPol.exe -m -ag 1.2 -url file://to/your/network/share/* FullTrust

值得注意的是,存在两种代码访问安全配置,一种用于 32 位架构,一种用于 64 位架构。如果您使用 CasPol.exe 工具和 64 位命令提示符修改代码访问安全性,那么您就是在修改 64 位进程的 .NET 代码访问安全性! Excel 通常作为 32 位进程运行(如果您遵循 Microsoft's install advice ),因此您需要从 32 位命令提示符执行 CasPol.exe,例如:

C:\Windows\SysWOW64\cmd.exe

关于c# - Excel DNA 代码访问安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23615167/

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