самостоятельный powershell не реализует переменную в строке

У меня есть собственная среда PowerShell, и у меня есть следующий скрипт

$one = 10
$two = "The value of one is $one"

Когда я запускаю этот фрагмент в PowerShell ISE, результат такой, как я ожидаю.

The value of one is 10

Когда я запускаю это в своей собственной среде PowerShell, строка не реализуется, и результат не меняется. Кто-нибудь знает, как вызвать стандартное поведение?

С уважением, Зимми

полный пример

var script = $@"
            $one = 10
            $two = 'The value is $one'
     ";

var ps = PowerShell.Create();

ps.AddScript(script);
ps.Invoke();

var valueoftwo = ps.Runspace.SessionStateProxy.GetVariable("two");

Assert.Equal("The value is 10", valueoftwo);
// here the value is 'The value is $one'

person zimmybln    schedule 09.08.2018    source источник
comment
Что вы подразумеваете под собственной средой PowerShell?   -  person Mark Wragg    schedule 09.08.2018
comment
Я ссылаюсь на пакет nuget Microsoft.PowerShell.5.ReferenceAssmblies, создаю объект PowerShell и пространство выполнения, а затем запускаю сценарий.   -  person zimmybln    schedule 09.08.2018
comment
@zimmybln, у вас есть код, демонстрирующий проблему?   -  person boxdog    schedule 09.08.2018
comment
Я отредактировал вопрос. См. выше.   -  person zimmybln    schedule 09.08.2018
comment
Ваша строка powershell заключена в одинарные кавычки $two = 'The value is $one' внутри строки С#. Строки с одинарными кавычками не выполняют интерполяцию переменных в PowerShell. Вам нужно будет вставить двойные кавычки в строку C# с обратной косой чертой $two = \"the value is $one\" - stackoverflow.com/a/3458058/478656   -  person TessellatingHeckler    schedule 09.08.2018
comment
Вот оно. Большое спасибо!   -  person zimmybln    schedule 09.08.2018