.NET GUI не отображается в WinPE

Я создал утилиту в C#, что-то базовое. У меня это работает во время развертывания последовательности задач SCCM. Первое, что он делает (во время события загрузки формы), это запрос ldap. Эта часть кода находится в блоке try, и возникает исключение, и отображается сообщение об ошибке, но форма никогда не появляется. На моем компьютере разработчика, когда произошла ошибка, я получал сообщение, но форма отображалась позже.

Я проверил, что все DLL, которые я вызываю, установлены на WinPE, кто-нибудь еще разрабатывал.NET для WinPE? Это WinPE 4.0, и я установил.NET 4.0 и другое программное обеспечение, используя средство dism, входящее в комплект Windows 8 ADK. Ничего особенного в сети пока нет, так как поддержка.NET в WinPE довольно нова.

1 ответ

Решение

Похоже, что сборка System.Windows.Forms не была загружена. Я узнал об этом, пытаясь создать форму с powershell, и powershell выдал ошибку, в которой говорилось, что он не может найти тип. После поиска в Google, я наткнулся на исправление, которое говорит, что использовать [System.Reflection.Assembly]::LoadWithPartialName метод для загрузки сборки, и я загрузил сборку System.Windows.Forms. После этого я создал форму в powershell, и она отображалась без проблем, а после повторного запуска приложения она отображала графический интерфейс.

ОБНОВИТЬ

Похоже, я нашел свой ответ: последовательность задач выполняется в сеансе 0, то есть без графического интерфейса! 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
Другие вопросы по тегам