2

我有一个开源 C++ 项目的问题,我一直在使用它,当我在我的开发机器上运行它时(完全信任)它工作正常。当我将它部署到我的托管环境时,我的网站会引发以下错误:

System.IO.FileLoadException:无法验证的代码未能通过策略检查。

根据我的阅读,这是因为我的托管环境以中等信任度运行。我可以更改 C++ 项目中的任何设置以使该 dll 在中等信任环境中可用吗?

更新:

在根据@shf301 的回答进行了更多调查后,我在我正在使用的项目的文档中找到了这句话:

第二个项目面向 .NET 开发人员。我围绕这个 C++ 项目用 Managed C++ 编写了一个包装器。结果编译成 .NET DLL。

这不是意味着代码应该在中等信任下运行吗?

4

1 回答 1

3

是否管理 C++ 代码?否则它是一个 DLL,而不是一个程序集。程序集是一个 .NET 概念,它不适用于未管理的 DLL。

如果 DLL 是非托管的,或者它是托管的并且包含本机代码,那么您不能在中等信任环境中使用它

您的选择是更改您正在运行的信任环境或重写库,使其成为完全托管的代码。

于 2012-01-02T01:37:06.760 回答