Как использовать AppDomainInitializer в Powershell
Я пытаюсь создать домен приложения в скрипте Powershell. Я реализовал то же самое в C#, и это, кажется, работает нормально. Однако версия Powershell всегда дает ошибку, за исключением. Код сценария:
function Execute($arguments)
{
Write-Host "Arguments: " $arguments[0] $arguments[1] $arguments[2]
}
function Main
{
$appDomain = $null
Try
{
$appDomainSetup = New-Object -TypeName System.AppDomainSetup
$appDomainSetup.AppDomainInitializer = ${function:Execute}
$appDomainSetup.AppDomainInitializerArguments = @("Test1", "Test2", "Test3")
$appDomain = [AppDomain]::CreateDomain("TestDomain", $null, $appDomainSetup)
}
Finally
{
If ($appDomain -ne $null)
{
[AppDomain]::Unload($appDomain)
}
}
}
Main
И исключение: Необработанное Исключение: System.AccessViolationException: Попытка чтения или записи в защищенную память. Это часто указывает на то, что другая память повреждена. в System.AppDomain.nCreateDomain(String friendlyName, настройка AppDomainSetup, Evidence предоставил SecurityInfo, Evidence creatorsSecurityInfo, IntPtr parentSecur ityDescriptor) ...
Что мне здесь не хватает?
Изменить 1:
Кажется, проблема связана с делегатом в AppDomainSetup, Powershell создает из него динамический метод. Есть ли способ изменить это поведение?