2

Я создал приложение, предназначенное для .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

Вышеупомянутый ключ полностью отсутствует после установки платформы во встроенную систему, что вызывает всплывающее предупреждение. Если я удаляю этот ключ из системы, в которой он есть, и пытаюсь запустить приложение, я получаю то же предупреждение; так что я предполагаю, что это каким-то образом связано с этим.

0