none
Redistributable有各种版本,新版的可以代替旧版的吗 RRS feed

  • 问题

  • Redistributable有很多版本,新的可以代替旧的吗,就是说可以用2017的版全部代替过去的么?

    如果.net各个版本不兼容,就必须都要安装了


    Thanks


    • 已编辑 zhgart 2017年8月19日 8:54
    2017年8月18日 12:12

答案

  • 如果没有比较特殊的需求,建议重新安装,比较不会有相容性的问题.
    • 已标记为答案 zhgart 2017年8月21日 4:28
    2017年8月20日 17:58
  • 低版本的可以运行在高版本的runtime中。比如用.net 2.0的编译的代码,可以跑在.net 4.0中。

    以前遇到的一个例子是windows workflow foundation仅仅只有3.0/3.5中可以跑(具体来说状态机工作流),后来微软改进了程序集加载策略,他们可以跑在.net 4.0中。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    • 已标记为答案 zhgart 2017年8月21日 4:28
    2017年8月21日 0:21
  • 你好,

    很高兴您对这个问题有很好的见解与看法。

    此外,可以参考一下:

    Why are there so many different Visual C++ redistributables?

    Because programmers rely on Microsoft to keep the Visual C++ runtime up to date, Microsoft releases security update for the redistributables, but due to programmer demands, Visual C++ redistributables do not supersede each other and old versions are kept for compatibility. Some apps are very specific about the version of the Visual C++ dlls they require to make sure the app runs exactly as published. Their authors hold on updating to the latest runtime until they tested their app's compatibility with the new runtime

    这个答案非常明确,新版本的Visual C++转发包由于兼容性问题不会取代旧版本的,而且一些app需要在特定的runtime和dll。如果您删除了老版本的C++转发包,可能会导致一些程序无法正常运行。另外,我在论坛回帖的过程中经常会遇到我们的客户由于缺少某一版本的Visual C++ Redistributable, 导致一些游戏都无法正常安装的情况。

    一般来说,这些转发包所占的内存很少,大概几十MB,所以建议您在更新下载新版本的同时,可以在机器上也保留旧版本的,这样会降低一些app无法打开或运行的风险。



    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    2017年8月21日 5:36
    版主
  • 网上搜了一下。可谓众说纷纭。又说可删,有说不可。是微软的历史问题。算了,留着也行。

    就算自己给自己一个答案好了。


    Thanks


    • 已编辑 zhgart 2017年8月20日 12:40
    • 已标记为答案 zhgart 2017年8月21日 4:26
    2017年8月20日 12:39
  • 网上确有如此说。正如前面自己给自己的答案描述。

    众说纷纭,不一而足。msdn文章也婚恋,一时不好定位。不过概率较大的是,各个版本互不包容。犹如你谈到3\3.5亦独立,不可不有。

    参考https://social.msdn.microsoft.com/Forums/vstudio/zh-CN/6aab9a3d-2df3-41f5-b18b-401d41c0d2f6/net-frameworknet-framework?forum=2212

    关系:

    1.0(独立)

    1.1(独立)

    2.0(独立)

    3.5(包含2.0和3.0)

    4.0(独立)

    所以让他们都存在好了。其实微软应当在每个版本头加个声明,像操作系统那样,后者兼容前者。一目了然。


    Thanks



    • 已编辑 zhgart 2017年8月21日 4:32
    • 已标记为答案 zhgart 2017年8月23日 5:03
    2017年8月21日 4:26

全部回复

  • 网上搜了一下。可谓众说纷纭。又说可删,有说不可。是微软的历史问题。算了,留着也行。

    就算自己给自己一个答案好了。


    Thanks


    • 已编辑 zhgart 2017年8月20日 12:40
    • 已标记为答案 zhgart 2017年8月21日 4:26
    2017年8月20日 12:39
  • 如果没有比较特殊的需求,建议重新安装,比较不会有相容性的问题.
    • 已标记为答案 zhgart 2017年8月21日 4:28
    2017年8月20日 17:58
  • 低版本的可以运行在高版本的runtime中。比如用.net 2.0的编译的代码,可以跑在.net 4.0中。

    以前遇到的一个例子是windows workflow foundation仅仅只有3.0/3.5中可以跑(具体来说状态机工作流),后来微软改进了程序集加载策略,他们可以跑在.net 4.0中。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    • 已标记为答案 zhgart 2017年8月21日 4:28
    2017年8月21日 0:21
  • 如果没有比较特殊的需求,建议重新安装,比较不会有相容性的问题.

    是的,全删过,重新安2015,结果发现呼呼啦啦地自动又出来很整齐的过去版本。不知道咋弄的。只是视觉 不爽而已。无他。

    Thanks


    • 已编辑 zhgart 2017年8月21日 4:27
    2017年8月21日 4:15
  • 网上确有如此说。正如前面自己给自己的答案描述。

    众说纷纭,不一而足。msdn文章也婚恋,一时不好定位。不过概率较大的是,各个版本互不包容。犹如你谈到3\3.5亦独立,不可不有。

    参考https://social.msdn.microsoft.com/Forums/vstudio/zh-CN/6aab9a3d-2df3-41f5-b18b-401d41c0d2f6/net-frameworknet-framework?forum=2212

    关系:

    1.0(独立)

    1.1(独立)

    2.0(独立)

    3.5(包含2.0和3.0)

    4.0(独立)

    所以让他们都存在好了。其实微软应当在每个版本头加个声明,像操作系统那样,后者兼容前者。一目了然。


    Thanks



    • 已编辑 zhgart 2017年8月21日 4:32
    • 已标记为答案 zhgart 2017年8月23日 5:03
    2017年8月21日 4:26
  • 你好,

    很高兴您对这个问题有很好的见解与看法。

    此外,可以参考一下:

    Why are there so many different Visual C++ redistributables?

    Because programmers rely on Microsoft to keep the Visual C++ runtime up to date, Microsoft releases security update for the redistributables, but due to programmer demands, Visual C++ redistributables do not supersede each other and old versions are kept for compatibility. Some apps are very specific about the version of the Visual C++ dlls they require to make sure the app runs exactly as published. Their authors hold on updating to the latest runtime until they tested their app's compatibility with the new runtime

    这个答案非常明确,新版本的Visual C++转发包由于兼容性问题不会取代旧版本的,而且一些app需要在特定的runtime和dll。如果您删除了老版本的C++转发包,可能会导致一些程序无法正常运行。另外,我在论坛回帖的过程中经常会遇到我们的客户由于缺少某一版本的Visual C++ Redistributable, 导致一些游戏都无法正常安装的情况。

    一般来说,这些转发包所占的内存很少,大概几十MB,所以建议您在更新下载新版本的同时,可以在机器上也保留旧版本的,这样会降低一些app无法打开或运行的风险。



    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    2017年8月21日 5:36
    版主
  • 一般来说,这些转发包所占的内存很少,大概几十MB,所以建议您在更新下载新版本的同时,可以在机器上也保留旧版本的,这样会降低一些app无法打开或运行的风险。

    -----------

    是的,为了降低风险。这么做好。


    Thanks

    2017年8月23日 5:02