我有一个针对“.NET Framework 4 Client Profile”的 .NET Winform 应用程序,它使用了另外四个类库程序集,但它们也都针对客户端配置文件。
当我在仅安装了 4.0 Client Profile 的普通 Windows XP 机器上对此进行测试时,我仍然收到“.NET Framework 初始化错误”:
To run this application, you first must install one of the following versions on the .NET framework: .NETFramework, Version=v4.0
如何找出应用程序的哪些部分仍然需要完整框架的组件?
我假设通过将目标框架设置为“客户端配置文件”,编译器将确保我仅使用客户端配置文件的组件。
最佳答案
我再次检查了所有程序集,以确保它们都针对客户配置文件:是的。
然后我从一个新的空 WinForms 应用程序开始,它按预期在客户端配置文件上运行。然后,我将我在主应用程序中使用的程序集一一添加到这个新应用程序中。即使在引用了所有这些之后,新的应用程序仍然可以运行。
然后我查看了 app.config,其中包含一些 DbProviderFactories 条目,但删除它们并没有帮助。在那里我看到了第一个节点:
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
嗯,也许那个特定的 sku 代表完整版本。事实上,将其更改为
<startup>
<supportedRuntime version="v4.0" />
</startup>
解决了我所有的问题。
关于针对客户端配置文件的 .Net 4.0 应用程序仍然提示用户下载完整配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9082093/