2013-02-13 31 views
3

我在C#中创建了一个实用程序,这是基本的东西。我在SCCM任务序列部署期间运行它。它所做的第一件事情之一(在表单加载事件期间)是查询ldap。该部分代码位于try块中,并且捕获到异常并显示错误消息,但表单从不显示。在我的开发机器上出现错误时,我会收到消息,但之后会显示表单。.NET GUI不能显示在WinPE中

我已经验证所有我打电话的DLL都安装在WinPE上,有没有人为WinPE做过任何.NET开发?这是WinPE 4.0,我已经使用Windows 8 ADK附带的dism工具安装了.NET 4.0和其他软件。因为WinPE中的.NET支持是相当新的,所以网上没有多少东西。

回答

4

它似乎没有加载System.Windows.Forms程序集。我通过试图用powershell创建表单而发现了这一点,并且PowerShell提供了一个错误,表示找不到该类型。谷歌搜索后,我遇到了一个修复,说使用[System.Reflection.Assembly]::LoadWithPartialName方法加载程序集,我加载了System.Windows.Forms程序集。之后,我在PowerShell中创建了一个表单,并且它没有任何问题地显示,并且在我再次运行我的应用程序后,它显示出gui的好。

UPDATE

看起来像我发现我的回答是:任务序列在会话0中运行,即没有GUI! http://blogs.technet.com/b/cameronk/archive/2010/04/27/creating-a-user-interactive-task-sequence-experience.aspx

更新20130219

我结束了使用PSEXEC并调用它从我的可执行文件,使用

psexec.exe -accepteula -s -i -h C:\_SMSTaskSequence\Packages\STE000AAA\myapp.exe