Comment construire une application WPF avec Add-type code C #
-
20-09-2019 - |
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 ...
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é.