如何使用Add-Type C#代码构建WPF应用程序

时间:2009-10-09 12:55:17

标签: wpf powershell powershell-v2.0

我尝试使用Add-Type构建WPF应用程序,但失败了。


$ a = @'
使用System.Windows;
    公共课程计划
    {
        [STAThread()]
        public static void Main(string [] args)
        {
            Application app = new Application();
            Window1 w = new Window1();
            app.Run(W);
        }     } “@

Add-Type -TypeDefinition $ a -UsingNamespace“System.Windows”


Add-Type的帮助文档没有-UsingNamespace(和-ReferencedAssemblies)的用法, 所以我不太明白......

2 个答案:

答案 0 :(得分:2)

几个问题:

$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
  • Window w = new Window() - NOT Window1。

然后,编译:

Add-Type -TypeDefinition $a -ReferencedAssemblies presentationcore, presentationframework, windowsbase
  • 缺少WPF程序集引用

最后:

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

此最后一行仅在您使用PowerShell ISE时启用,或者已使用-STA标志启动控制台版本的powershell 2.0。

最终这是一次学术练习。你真的应该使用像PowerBoots这样的成熟产品(另一张海报提到)。它为你完成了所有艰苦的工作(感谢Jaykul!)

-Oisin

答案 1 :(得分:0)

我个人会放弃这种方法并尝试PowerBoots这是非常强大的PowerShell模块,具有简单的语法和WPF的所有基本可能性。

除了你在剧本中提出的内容之外,还有很多工作要做,抱歉。