针对客户端配置文件的 .Net 4.0 应用程序仍然提示用户下载完整配置文件

标签 .net .net-client-profile

我有一个针对“.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/

相关文章:

c# - 用 C++ 开发 Win32 应用程序比用 C# 开发 .NET 应用程序有什么优势?

.net - WCF NetTcpBinding 双工 channel 端点可以在端口 80 上吗?

c# - Registry.GetValue 有什么问题?

deployment - 如何制作自定义 .net 客户端配置文件安装程序?

c# - 强制 DataGrid 列验证 (WPF)

c# - 如何将 Linq 扩展方法与 CodeFluent 实体模板一起使用?

visual-studio-2010 - 目标框架, ".NET Framework ... Client Profile"是什么意思?

.net - 如何确定 DLL 是否需要完整的 .NET 4 或仅客户端配置文件

.net - .NET 客户端配置文件值得瞄准吗?

.net - 为什么 Microsoft .NET Framework Client Profile 是 256 MB?