2011-03-15 32 views
2

我有一個非託管的assebmly(加密功能),VB.NET(2.0)安裝程序類用於在應用程序安裝過程中的應用程序服務器上的一些安裝診斷。問題是,無論何時調用方法它拋出MethodAccessException異常。 當我在應用程序本身(Windows 2.0)中調用方法時,請說出其他應用程序程序集的任何表單,並將該調用接受爲完全可信。但是,當安裝程序類(自定義操作)執行調用時,非託管程序集不允許它並拋出異常。 我做了一些關於caspol工具的研究,但仍然無法掌握足夠的代碼安全性來解決問題 謝謝。MethodAccessException

+0

調用者(安裝程序)是完全可信的嗎?你的意思是什麼(Windows 2.0)?你也許意味着(.NET 2.0)? – 2011-03-15 17:11:08

+0

這不是CAS例外。非託管代碼如何拋出託管異常完全不清楚你的問題。 – 2011-03-15 18:00:21

+0

1.是Jim,它是.NET 2.0如何使安裝程序包完全可信?在VS 2008中似乎沒有任何信任的設置。 – itisinteresting 2011-03-16 13:17:00

回答

5

這裏是一個答案,我在MSDN論壇有:

此異常[MethodAccessException]在以下情況下拋出,如以下幾點:

* A private, protected, or internal method that would not be accessible from normal compiled code is accessed from partially trusted code by using reflection. 
* The access level of a method in a class library has changed, and one or more assemblies that reference the library have not been recompiled. 

您可以在以下網頁看到的信息: http://msdn.microsoft.com/en-us/library/system.methodaccessexception(v=VS.90).aspx?appId=Dev10IDEF1&l=EN-US&k=k(APPLICATIONDEPLOYMENT);k(TargetFrameworkMoniker-

我認爲你的問題應該是第二種情況。

我通過反思解決了這個問題。謝謝,下面是原始答案的鏈接 http://social.msdn.microsoft.com/Forums/en/winformssetup/thread/de5dc1a2-c8ab-4d6a-b283-2609ed8859df

快樂編碼。

+0

有類似的問題。使用Silverlight的反射代碼版本進行處理。 – bizah 2014-05-06 20:11:33

+0

即使我在Visual Studio中清理/重建解決方案,但在將類庫的類的可訪問性更改爲public並從控制檯應用程序中調用其方法之後,今天我仍然遇到同樣的問題。原因是「微不足道」(當然,在我找到它之後):程序集是GAC-ed,Visual Studio(調試時),沒有調試的應用程序加載了GAC-es版本,其中包含非公開版本的班上。因此,如果您有相同的思想,請檢查GAC中的程序集,並重新部署新版本(如果發現以前的版本)。 – pholpar 2017-11-07 13:18:33

相關問題