如果两个程序集都完全签名,那么CLR将使用GAC中的程序集。如果您将目标路径中的路径保留为无符号,那么CLR将使用该路径。
如果这不是一个选项,那么您需要使用其中一个CreateDomain覆盖,您可以在其中定义该程序集将需要的权限集。有关覆盖的更多信息可以在这里找到:http://msdn.microsoft.com/en-us/library/ms130766.aspx。
从http://davedewinter.com/2009/05/22/how-to-host-a-partial-trust-sandbox/截取的用法的例子...
static void RunInPartialTrust()
{
AppDomainSetup setup = new AppDomainSetup
{
ApplicationBase = Environment.CurrentDirectory
};
PermissionSet permissions = new PermissionSet(null);
permissions.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));
permissions.AddPermission(new ReflectionPermission(ReflectionPermissionFlag.RestrictedMemberAccess));
AppDomain appDomain = AppDomain.CreateDomain(
"Partial Trust AppDomain",
null,
setup,
permissions
);
Program p = (Program)appDomain.CreateInstanceAndUnwrap(
typeof(Program).Assembly.FullName,
typeof(Program).FullName
);
p.PartialTrustMain();
}
的davewinter(http://davedewinter.com/2009/05/22/how-to-host-a-partial-trust -sandbox /)链接不再可访问。有链接的镜像吗? – Oli4