2012-01-02 41 views
2

我有一個開源C++項目的問題,我一直在使用它,當我在開發機器上運行它時(完全信任),它工作正常。當我將其部署到我的託管環境,我的網站引發以下錯誤:可能在中等信任環境中運行C++ dll嗎?

System.IO.FileLoadException: Unverifiable code failed policy check.

從我讀這是因爲我的託管環境中運行的信任。 C++項目中是否有任何設置可以更改,以使此dll在中等信任環境中可用?

更新:

做基於@ shf301的回答一些調查後,我發現這句話的文檔中的the project I am working with

The second project is for .NET developers. I wrote a wrapper in Managed C++ around this C++ project. The result compiles into a .NET DLL.

這是否意味着該代碼應運行在中等信任?

回答

3

是否管理C++代碼?否則,它是一個DLL,而不是一個程序集。程序集是一個.NET概念,它不適用於unmanged DLL。

如果DLL是非託管的或者它是託管的並且包含本地代碼,那麼you can't use it in a medium trust environment

您的選擇是更改您正在運行的信任環境或重寫庫,因此它是完全託管的代碼。

+0

好的,所以它聽起來像是可能的。我需要做什麼才能將項目更改爲完全託管代碼?如果你能指出我的方向真的很棒。對不起,我有很少的C++經驗。 – 2012-01-02 03:03:38

+0

我希望我的編輯是正確的!答案也是+1。 – 2012-01-02 03:04:41

+0

@AbeMiessler如果你可以完全管理它,你可以用C#編寫它。如果它需要成爲C++,那可能是因爲需要一些本地代碼。 – 2012-01-02 03:06:16

相關問題