Wie eine WPF-Anwendung mit Add-Type C # -Code bauen
-
20-09-2019 - |
Frage
i tryed WPF-Anwendung unter Verwendung von Add-Type zu bauen, aber es ist fehlgeschlagen.
$ A = @ '
mit System.Windows;
public class Program
{
[STAThread ()]
public static void Main (string [] args)
{
Anwendung app = neue Anwendung ();
Window1 w = new Window1 ();
app.Run (w);
}
}
‚@
Add-Type -TypeDefinition $ a -UsingNamespace "System.Windows"
Add-Type Hilfe Dokument nicht über Verwendungen von -UsingNamespace (und -ReferencedAssemblies), so dass ich nicht verstehe, gut ...
Lösung
Einige Probleme:
$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);
}
}
'@
- Missing "using System;" Referenz für STAThread
- Fenster w = new Window () -. NICHT Window1
Dann Kompilierung mit:
Add-Type -TypeDefinition $a -ReferencedAssemblies presentationcore, presentationframework, windowsbase
- Missing WPF Montage refernces
Schließlich:
ps> [program]::main(@())
Das letzte Zeile wird nur funktionieren, wenn Sie mit Powershell ISE, oder haben damit begonnen, die Konsolen-Version o Powershell 2.0 mit der -STA Flagge.
Letztlich ist dies eine akademische Übung. Sie sollten wirklich ein ausgereiftes Produkt wie PowerBoots werden (von den anderen Poster erwähnt). Es ist geschafft, all die harte Arbeit für Sie (dank Jaykul!)
-Oisin
Andere Tipps
Persönlich würde ich diesen Ansatz aufgeben und versuchen, PowerBoots Es ist sehr leistungsfähige Powershell-Modul mit einfacher Syntax und all die grundlegenden Möglichkeiten der WPF zur Verfügung.
Es gibt viel mehr zu tun, als das, was Sie im Skript vorgestellt haben, sorry.