我打算建立WPF应用程序中使用添加型,但它失败。


$a=@'
使用的系统。窗;
公共类程序
{
[STAThread()]
公共则(string[]args)
{
应用程序的应用程序=新的应用程序();
Window1w=new Window1();
应用程序。运行(w);
}
}
'@

添加型-TypeDefinition$a-UsingNamespace"系统。窗户"


添加型的帮助的文件没有用的-UsingNamespace(和-ReferencedAssemblies), 所以我不理解...

有帮助吗?

解决方案

几个问题:

$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=new窗口()-不Window1.

然后,汇编有:

Add-Type -TypeDefinition $a -ReferencedAssemblies presentationcore, presentationframework, windowsbase
  • 失踪WPF会refernces

最后:

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

这最后一行,只会的工作,如果你使用PowerShell势,或者已经开始控制台版o powershell2.0与STA标志。

最终,这是一个学术活动。你真的应该采用一个成熟产品,如PowerBoots(所提到的其他海报).这样做的所有辛勤工作对你有(感谢Jaykul!)

-Oisin

其他提示

我个人放弃了这一做法,并尝试 PowerBoots 很方便的语法和所有非常强大的PowerShell模块WPF的基本可能性可用。

还有更多比你的脚本已经提出的事,对不起。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top