我正在阅读 Microsoft .Net Framework--Application Development Foundation Training Kit 书第 8 章第 2 课:配置应用程序域
ShowWinIni 是我要执行的程序的程序集名称
object[] hostEvidence = { new Zone(SecurityZone.MyComputer) };
Evidence e = new Evidence(hostEvidence, null);
// Create an AppDomain.
AppDomain d = AppDomain.CreateDomain("New Domain", e);
// Run the assembly
d.ExecuteAssemblyByName("ShowWinIni");
当我执行时:
AppDomain d = AppDomain.CreateDomain("New Domain", e);
我收到以下消息:“此方法隐式使用 .NET Framework 已废弃的 CAS 策略。出于兼容性原因,为了启用 CAS 策略,请使用 NetFx40_LegacySecurityPolicy 配置开关。请参阅http://go.microsoft .com/fwlink/?LinkID=155570了解更多信息。”
当我创建一个没有证据对象的 AppDomain 时,我可以很好地执行程序集。
当然,我访问了http://go.microsoft.com/fwlink/?LinkID=155570但我仍然对如何创建具有指定权限的应用程序域感到困惑。
我发现的下一个最有用的站点是http://msdn.microsoft.com/en-us/library/bb763046.aspx,但我的 StrongName 对象计算为 NULL。
StrongName fullTrustAssembly =
typeof(Program).Assembly.Evidence.GetHostEvidence<StrongName>();
Program 是实现所有这些代码的类的名称。
提前感谢您的建议和提示!