我有一个针对“.NET Framework 4 Client Profile”的.NET Winform应用程序,它使用了另外四个类库程序集,但它们也都是针对客户端配置文件的。
当我在安装了4.0 Client Profile的vanilla Windows XP盒子上测试时,我仍然得到'.NET Framework Initialization Error':
要运行此应用程序,首先必须安装以下之一 .NET框架上的版本:.NETFramework,Version = v4.0
如何找出应用程序的哪个部分仍然需要完整框架的一个组件?
我假设通过将目标框架设置为“客户端配置文件”,编译器将确保我只使用客户端配置文件的组件。
答案 0 :(得分:5)
我再次浏览了所有程序集,以确保它们都以客户端配置文件为目标:是的。
然后我开始使用一个新的空WinForms应用程序,并按预期在客户端配置文件上运行。然后我将我在主应用程序中使用的程序集逐个添加到这个新应用程序中。即使在全部引用它们之后,新应用程序仍然运行。
然后我看了app.config,它有一些DbProviderFactories条目,但删除它们没有帮助。在那里,我看到了第一个节点:
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
嗯,也许特定的sku代表完整版。事实上,将其改为
<startup>
<supportedRuntime version="v4.0" />
</startup>
解决了我所有的问题。