Как использовать 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 создает из него динамический метод. Есть ли способ изменить это поведение?

0 ответов

Другие вопросы по тегам