我已经在C#中创建了一个实用程序,有些基础.我让它在SCCM任务序列部署期间运行.它执行的第一件事(在表单装入事件期间)是查询ldap.该部分代码位于try块中,并且捕获了异常,并显示错误消息,但该窗体从未显示.在我的开发机上,当出现错误时,我会收到消息,但此后会显示表格.
我已经验证了我要调用的所有dll是否都已安装在WinPE上,是否有人针对WinPE做过.NET开发?这是WinPE 4.0,我已经使用Windows 8 ADK附带的dism工具安装了.NET 4.0和其他软件.由于WinPE中对.NET的支持还不是很新,因此网上没有什么东西.
解决方法:
似乎未加载System.Windows.Forms程序集.我通过尝试使用powershell创建表单发现了这一点,powershell给出了一个错误,指出找不到该类型.谷歌搜索之后,我遇到了一个修复程序,该修复程序据说使用[System.Reflection.Assembly] :: LoadWithPartialName方法来加载程序集,然后加载了System.Windows.Forms程序集.之后,我在powershell中创建了一个表单,它显示没有问题,再次运行我的应用程序后,它显示gui正常.
更新
看来我找到了答案:任务序列在会话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