.net 4.0 .NET 4.0 AppDomain:已过时的证据

.net 4.0 .NET 4.0 AppDomain:已过时的证据,.net-4.0,code-access-security,.net 4.0,Code Access Security,我是一名.NET学生,目前正在学习应用程序领域。 我们得到了以下示例代码(针对.NET3.5)。正如所料,它抛出了一个SecurityException。注意:TestApp.exe作为参考添加到项目中 当我试图在VS2010的.NET4.0下运行它时,遇到了一个问题。 首先它显示一个警告 “Public Sub New(hostEvidence()作为对象,assemblyEvidence()作为对象)”已过时:“此构造函数已过时。请使用接受证据库数组的构造函数。“ 我将hostEvidenc

我是一名.NET学生,目前正在学习应用程序领域。 我们得到了以下示例代码(针对.NET3.5)。正如所料,它抛出了一个SecurityException。注意:TestApp.exe作为参考添加到项目中

当我试图在VS2010的.NET4.0下运行它时,遇到了一个问题。 首先它显示一个警告

“Public Sub New(hostEvidence()作为对象,assemblyEvidence()作为对象)”已过时:“此构造函数已过时。请使用接受证据库数组的构造函数。“

我将hostEvidence的类型更改为证据库(),警告消失。 但是,当尝试运行应用程序时,会出现错误

此方法隐式使用CAS策略,该策略已被.NET Framework淘汰。为了出于兼容性原因启用CAS策略,请使用NetFx40_LegacySecurityPolicy配置开关。有关更多信息,请参阅

我已经浏览了这个页面,跟随了如何:在沙箱中运行部分受信任的代码的链接并阅读了,但是我很难理解所有这些


与我目前拥有的相比,MSDN上的代码示例相当大,因此如果您能帮助我更改代码,使其在不添加其他内容的情况下工作,我们将不胜感激。

正如您提供的链接中所述,.NET不再支持代码访问安全框架的策略部分,从版本4.0开始

换句话说,您的课程是关于.NET3.5的,与4.0框架无关。解决方案是恢复到原始代码和(您仍然可以使用VisualStudio2010)


.

我意识到LESSE大约是3.5,但MSDN关于迁移的页面在代码中使用了SecurityZone.Internet。我只是觉得它比我想要的做得更多,我没有经验取出我需要的部件。您的课程可能也适用于.NET 4.0,但您在问题中没有提供足够的信息。(可能不能)如果你在学习材料的同时继续尝试让它与4.0兼容,那么当你遇到语言和框架的变化时,你可能会遇到更令人不快的惊喜。您仍然可以使用VisualStudio2010,只是不应该以4.0框架为目标。
Dim file As String = "TestApp.exe"
Dim hostEvidence As Object() = {New Zone(SecurityZone.Internet)}
Dim appDomainEvidence As Evidence = New Evidence(hostEvidence, Nothing)
Dim d As AppDomain = AppDomain.CreateDomain("MyDomain", appDomainEvidence)
d.ExecuteAssembly(file)