Почему.NET Framework 4.5.1 не устанавливается должным образом в Windows Embedded 8 Standard?
Я создал приложение, которое нацелено на .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
Вышеуказанный ключ полностью отсутствует после установки платформы во встроенную систему, что вызывает всплывающее предупреждение. Если я удаляю этот ключ из системы, в которой он есть, и пытаюсь запустить приложение, я получаю то же предупреждение; так что я думаю, что это как-то связано с этим.