代码之家  ›  专栏  ›  技术社区  ›  Babak Naffas

是否可以将.NET 4.0部署到只安装了.NET 3.5 SP1的计算机上?

  •  0
  • Babak Naffas  · 技术社区  · 15 年前

    我正在开发一个需要.NET 4.0才能运行的WPF应用程序。企业版上的计算机都在运行.NET3.5SP1。不必在客户端计算机上安装完整的.NET 4框架,就可以使用.net4 dll部署应用程序吗?

    我们的实现有两个部分将我们与.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已发布以下修补程序: 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 但是,如果我要将此热修复程序部署到企业版,我最好对.NET4.0客户端配置文件执行此操作,然后解决所有问题。

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

    我现在的想法是: 这是办不到的。即使我部署了被引用的.NET 4 dll,它们仍将尝试由无法理解它们的旧版本的CLR处理。

    4 回复  |  直到 15 年前
        1
  •  3
  •   ChrisF    15 年前

    你需要.NET 4,但是 Client Profile

    .NETFramework4客户端配置文件是针对客户端应用程序优化的.NETFramework4的一个子集。它为大多数客户端应用程序提供功能,包括Windows Presentation Foundation(WPF)、Windows窗体、Windows Communication Foundation(WCF)和ClickOnce功能。这使针对.NETFramework4客户端配置文件的应用程序能够更快地部署和更小的安装包。

    这是一个更小的框架下载和更小的足迹版本。

        2
  •  1
  •   SRM    15 年前

    不。这些dll依赖于在GAC中注册的程序集。如果没有安装.Net框架,则无法获取这些程序集。为什么不直接用安装程序部署呢?

        3
  •  1
  •   JaredPar    15 年前

    不可以将根据4.0编译的应用程序部署到只包含.Net 3.5(任何版本)的计算机上。必须在计算机上安装运行时的4.0版本。

    但是,可以使用Visual Studio 2010(和2008)编译针对3.5的程序集。这样就可以部署到只有3.5框架的机器上。这个特性被称为多目标,这里有一个关于这个主题的教程的链接

        4
  •  1
  •   Daniel Perez    15 年前

    这取决于您使用的4.0中的哪些功能。。。其中一些只是语法糖,编译器会为此生成IL。例如,新的“dynamic”关键字使用新的dynamic Language Runtime(DLR),它仅作为.net 4.0的一部分提供。所以,如果你的应用程序使用它,除了在计算机中安装.NETFramework4.0之外,没有其他方法了
    对我来说,最好的方法是在项目属性中将目标版本设置为3.5(在Visual Studio中为您的项目的属性中指定),如果没有任何错误,您可以遵循以下常规 guidelines 测试应用程序是否能正常工作。