Почему .NET Framework 4.5.1 не устанавливается должным образом в Windows Embedded 8 Standard?

2616
vane

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

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

2
Да; подключенный 4.5.1 - это обновление на месте до 4.0 Ramhound 9 лет назад 0
@ Ramhound Правильно, я знаю, что это обновление на месте. Обновление (установщик) демонстрирует это поведение и не добавляет соответствующие ключи реестра. Таким образом, после применения обновления на месте до 4.5.1 приложение все еще не обнаруживает, что оно установлено и не будет работать (обратите внимание, что эта проверка и отказ от запуска выполняется самой платформой, а не из моего кода). vane 9 лет назад 0
Дело в том, что Windows 8 поставляется с уже установленной .NET Framework 4.5.1. Вы уверены, что этот раздел реестра исходит от установщика 4.5.1? Ramhound 9 лет назад 0
@ramhound no, windows 8 поставляется с установленным .net 4.5, а не 4.5.1. Windows 8.1 поставляется с установленным .net 4.5.1 vane 9 лет назад 0

0 ответов на вопрос

Похожие вопросы