为什么 .NET Framework 4.5.1 无法在 Windows Embedded 8 Standard 上正确安装?

为什么 .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,应用程序可以正常运行,但启动节点存在时会拒绝运行。Windows Embedded 8 Standard 系统上的 .NET Framework 4.5.1 是否存在问题?我可能做错了什么吗?

我知道我可以删除节点并完成它,但我真的很想知道为什么会发生这种情况,而不是盲目地让它工作。

更新

我做了进一步的研究,似乎在正常系统(Windows 8)上,.NET 安装程序会将以下项添加到注册表中(以及其他一些项),但在 Windows Embedded 8 标准系统上运行时,安装程​​序不会创建这些项(请记住,安装程序不会失败也不会报告任何问题)。

HKLM\Software\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.5.1

在嵌入式系统上安装框架后,上述密钥完全缺失,导致警告弹出。如果我从具有该密钥的系统中删除该密钥并尝试运行该应用程序,我会得到相同的警告弹出行为;所以我猜这在某种程度上与此有关。

相关内容