【问题标题】:Is it possible to deploy a .NET 4.0 to a machine with only .NET 3.5 SP1 installed?是否可以将 .NET 4.0 部署到仅安装了 .NET 3.5 SP1 的机器上?
【发布时间】:2011-05-14 04:05:41
【问题描述】:

我正在开发一个需要 .NET 4.0 才能运行的 WPF 应用程序。企业上的机器都在运行.NET 3.5 SP1。是否可以使用其 .NET 4 DLL 部署应用程序,而无需在客户端计算机上安装完整的 .NET 4 Framework?

我们的实现有两个部分将我们与 .NET 4.0 结合

  1. 使用数据网格用户控件(这是最容易克服的问题)。
  2. 对我的 WCF 绑定使用 enableUnsecuredResponse 属性。
<bindings>
  <customBinding>
    <binding name="CadsBinding">
      <textMessageEncoding messageVersion="Soap11"/>
      <security enableUnsecuredResponse="true" authenticationMode="UserNameOverTransport" allowInsecureTransport="true">
        <secureConversationBootstrap/>
      </security>
      <httpTransport authenticationScheme="Basic"/>
    </binding>
  </customBinding>
</bindings>

Microsoft 已发布以下 Hot Fix:A hotfix that enables WCF to send secured messages and to receive unsecured responses, and to send unsecured messages and to receive secured responses, is available for the .NET Framework 3.5 SP1,但如果我要将此 Hot Fix 部署到企业,我不妨为 .NET 4.0 客户端配置文件执行此操作,并在那里解决我的所有问题。

我知道 .NET 4.0 客户端配置文件安装。我要避免的是只为我的应用程序推出框架的安装。

我目前的想法: 这是不可能的。即使我部署了引用的 .NET 4 DLL,它们仍会尝试由无法理解它们的旧版本 CLR 处理。

【问题讨论】:

  • 什么意思? .NET 4 应用程序如何在没有 .NET 4 的机器上运行?
  • @RPM1981 我有 98% 的把握这不可能完成,我希望社区可以帮助我解决另外 2% 的问题。

标签: wcf visual-studio-2010 .net-3.5 .net-4.0 app-config


【解决方案1】:

这取决于您使用 4.0 中的哪些功能...其中一些只是语法糖,编译器会为此生成 IL。例如,新的“动态”关键字使用新的动态语言运行时 (DLR),它仅作为 .net 4.0 的一部分提供。因此,如果您的应用程序使用它,除了在机器中安装 .net framework 4.0 之外别无他法
对我来说,最好的办法是在项目属性中将目标版本设置为 3.5(在 Visual Studio 中项目的属性中指定),如果没有任何错误,你可以按照这个一般 guidelines 测试应用是否可以运行。

【讨论】:

  • 在这种情况下,为什么不将应用保留为 .NET35 目标?
【解决方案2】:

不,不可能将针对 4.0 编译的应用程序部署到仅包含 .Net 3.5(任何版本)的机器上。机器上必须安装4.0版本的runtime。

但是,可以使用 Visual Studio 2010(和 2008)编译面向 3.5 的程序集。然后可以将其部署到仅具有 3.5 框架的机器上。此功能称为多目标,这里是有关该主题的教程的链接

【讨论】:

    【解决方案3】:

    没有。这些 DLL 依赖于在 GAC 中注册的程序集。如果没有安装 .Net 框架,您将无法获得这些程序集。为什么不直接使用安装程序进行部署?

    【讨论】:

      【解决方案4】:

      您将需要 .NET 4,但有 Client Profile

      .NET Framework 4 客户端配置文件是 .NET Framework 4 的子集,针对客户端应用程序进行了优化。它为大多数客户端应用程序提供功能,包括 Windows Presentation Foundation (WPF)、Windows Forms、Windows Communication Foundation (WCF) 和 ClickOnce 功能。这可以为面向 .NET Framework 4 客户端配置文件的应用程序提供更快的部署和更小的安装包。

      这是一个下载量较小且占用空间较小的框架版本。

      【讨论】:

      • +1 用于提及客户资料。毕竟,OP 确实会问“不必在客户端计算机上安装 完整的 .NET 4 Framework?”
      • 你说得对,我只提到了完整的框架。我意识到了差异,只是没有指出这一点。
      猜你喜欢
      • 1970-01-01
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-16
      • 2014-02-06
      • 2013-01-28
      • 2010-11-09
      相关资源
      最近更新 更多