Несколько проблем:
$a = @'
using System;
using System.Windows;
public class Program
{
[STAThread()]
public static void Main(string[] args)
{
Application app = new Application();
Window w = new Window();
app.Run(w);
}
}
'@
- Отсутствует "использование системы"; ссылка для STAThread
- Окно w = новое окно () - НЕ Window1.
Затем скомпилируйте с:
Add-Type -TypeDefinition $a -ReferencedAssemblies presentationcore, presentationframework, windowsbase
- Отсутствует ссылка на сборку WPF
Наконец:
ps> [program]::main(@())
Эта последняя строка будет работать, только если вы используете PowerShell ISE или запустили консольную версию o powershell 2.0 с флагом -STA.
В конечном итоге это академическое упражнение. Вы действительно должны использовать зрелый продукт, такой как PowerBoots (упомянутый другим автором). Для вас проделана вся тяжелая работа (спасибо, Джайкуль!)
-Oisin