Question

i tryed pour construire l'application WPF utilisant Add-type, mais il a échoué.
$ A = @ '
en utilisant System.Windows;
    Programme public class
    {
        [STAThread ()]
        public static void Main (string [] args)
        {
            application Application = new Application ();
            Window1 w = new Window1 ();
            app.Run (w);
        }
    }
« @

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

document d'aide de commande Add-Type n'a pas de -UsingNamespace usages (et -ReferencedAssemblies), donc je ne comprends bien ...

Était-ce utile?

La solution

Plusieurs problèmes:

$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); 
   } 
 } 
'@
  • manquant "using System;" référence pour STAThread
  • Fenêtre w = new Window () -. PAS Window1

Ensuite, compiler avec:

Add-Type -TypeDefinition $a -ReferencedAssemblies presentationcore, presentationframework, windowsbase
  • manquant refernces de montage WPF

Enfin:

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

Cette dernière ligne ne fonctionnera que si vous utilisez PowerShell ISE, ou avez démarré la version console o 2.0 powershell avec le drapeau -STA.

En fin de compte c'est un exercice académique. Vous devriez vraiment utiliser un produit mature comme PowerBoots (mentionné par l'autre affiche). Il a fait tout le travail pour vous (merci Jaykul!)

-Oisin

Autres conseils

Personnellement, je renoncer à cette approche et essayer PowerBoots Ce module est PowerShell très puissant avec une syntaxe simple et tous les possibilités de base de WPF disponibles.

Il y a beaucoup plus à faire que ce que vous avez présenté dans le script, désolé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top