Я создал приложение, предназначенное для .NET Framework 4.5.1
и работающее на многих системах Windows 7 Professional
без проблем. Недавно мы приобрели несколько тонких клиентов Windows Embedded 8 Standard
(IA64), чтобы протестировать приложение, работающее на этих системах.
Я запустил установщик .NET 4.5.1 на тонком клиенте и убедился, что 4.5.1 действительно установлен в системе (проверив в реестре соответствующие значения DWORD, как указано здесь)
Приложение не запускается и выдает всплывающее диалоговое окно с сообщением "This application requires one of the following version of the .NET Framework: .NETFramework,Version=v4.5.1"
. В app.config
для этого приложения есть следующие узлы
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/>
</startup>
Исходя из того, что я понимаю из приведенного выше фрагмента, он правильно настроен и должен нормально работать и фактически работает в Windows 7 Professional
.
Меня сбивает с толку то, что если я удаляю весь этот узел <startup>
из файла app.config
, приложение работает нормально, но отказывается, когда присутствует узел запуска. Есть ли какие-либо проблемы с .NET Framework 4.5.1 в системе Windows Embedded 8 Standard? Возможно, я делаю что-то не так?
Я знаю, что могу просто удалить узел и покончить с ним, но мне бы очень хотелось узнать, почему это происходит, а не просто бездумно заставить его работать.
ОБНОВИТЬ
Я провел дальнейшее исследование, и оказалось, что в нормальной системе (Windows 8) установщик .NET добавляет следующий ключ в реестр (среди прочих), но они не создаются установщиком при запуске в Windows Embedded 8 Стандартная система (имейте ввиду, что установщик не выходит из строя и не сообщает о каких-либо проблемах).
HKLM\Software\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.5.1
Вышеупомянутый ключ полностью отсутствует после установки платформы во встроенную систему, что вызывает всплывающее предупреждение. Если я удаляю этот ключ из системы, в которой он есть, и пытаюсь запустить приложение, я получаю то же предупреждение; так что я предполагаю, что это каким-то образом связано с этим.