Графический интерфейс .NET не отображается в WinPE

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

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


person MDMoore313    schedule 13.02.2013    source источник


Ответы (1)


Похоже, сборка System.Windows.Forms не загружена. Я узнал об этом, пытаясь создать форму с помощью powershell, и powershell выдал ошибку, в которой говорилось, что он не может найти тип. Погуглив, я наткнулся на исправление, в котором говорилось об использовании метода [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
person MDMoore313    schedule 14.02.2013