Domanda

Ho provato a costruire un'applicazione WPF utilizzando Add-Type, ma è venuto a mancare.
$ A = @ '
utilizzando System.Windows;
    public class Programma
    {
        [STAThread ()]
        public static void Main (string [] args)
        {
            Applicazione app = new Application ();
            Window1 w = new Window1 ();
            app.Run (w);
        }
    }
'@

Add-Type -TypeDefinition $ a -UsingNamespace "System.Windows"

di Add-Type documento di aiuto non ha usi di -UsingNamespace (e -ReferencedAssemblies), così io non ben capito ...

È stato utile?

Soluzione

Diversi problemi:

$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;" riferimento per STAThread
  • Finestra w = new Window () -. NON Window1

Poi, compilare con:

Add-Type -TypeDefinition $a -ReferencedAssemblies presentationcore, presentationframework, windowsbase
  • mancanti refernces montaggio WPF

Infine:

ps> [program]::main(@())

Questa ultima linea funziona solo se si sta utilizzando PowerShell ISE, o aver avviato la versione per console o PowerShell 2.0 con la bandiera -sta.

In definitiva si tratta di un esercizio accademico. È davvero necessario utilizzare un prodotto maturo come PowerBoots (di cui parla l'altro poster). E 'fatto tutto il lavoro duro per voi (grazie Jaykul!)

-Oisin

Altri suggerimenti

Personalmente avrei rinunciare a questo approccio e cercare PowerBoots E 'modulo PowerShell molto potente con facile sintassi e tutte le possibilità di base di WPF disponibili.

C'è molto di più da fare che quello che avete presentato nello script, mi spiace.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top