3

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

我已经验证我调用的所有 dll 都安装在 WinPE 上,有人为 WinPE 做过任何 .NET 开发吗?这是 WinPE 4.0,我已经使用 Windows 8 ADK 附带的 dism 工具安装了 .NET 4.0 和其他软件。由于 WinPE 中的 .NET 支持是相当新的,因此网络上还没有太多内容。

4

1 回答 1

4

似乎没有加载 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
于 2013-02-14T16:05:46.723 回答