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 ...

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top