Как создать приложение WPF с помощью кода Add-Type C # - PullRequest
1 голос
/ 09 октября 2009

Я пытался построить приложение WPF с использованием Add-Type, но это не удалось.


$ a = @ '
используя System.Windows;
Программа для публичного класса
{
[STAThread ()]
public static void Main (строка [] args)
{
Приложение приложения = новое приложение ();
Window1 w = новое Window1 ();
app.Run (ш);
}
}
@

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


В справочном документе Add-Type нет использования -UsingNamespace (и -ReferencedAssemblies), так что я не совсем понимаю ...

Ответы [ 2 ]

2 голосов
/ 09 октября 2009

Несколько проблем:

$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); 
   } 
 } 
'@
  • Отсутствует "использование системы"; ссылка для STAThread
  • Окно w = новое окно () - НЕ Window1.

Затем скомпилируйте с:

Add-Type -TypeDefinition $a -ReferencedAssemblies presentationcore, presentationframework, windowsbase
  • Отсутствует ссылка на сборку WPF

Наконец:

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

Эта последняя строка будет работать, только если вы используете PowerShell ISE или запустили консольную версию o powershell 2.0 с флагом -STA.

В конечном итоге это академическое упражнение. Вы действительно должны использовать зрелый продукт, такой как PowerBoots (упомянутый другим автором). Для вас проделана вся тяжелая работа (спасибо, Джайкуль!)

-Oisin

0 голосов
/ 09 октября 2009

Лично я бы отказался от этого подхода и попробовал бы PowerBoots Это очень мощный модуль PowerShell с простым синтаксисом и всеми основными возможностями WPF.

Намного больше, чем то, что вы представили в сценарии, извините.

...