什么是"私有.NET框架"?

38 .net c# bloomberg

一个受欢迎的财务软件供应商分发"私有".NET框架:

私有Bloomberg .NET框架

什么是私有.NET框架?

为什么有人想拥有自己的.NET框架私有版本?

从基本的角度来说,如何创建私有.NET框架呢?

The*_*kis 28

我不以任何方式与这个供应商有关联,因此我显然不能代表他们的意思.随着那个...


他们的FAQ说明如下:

什么是Bloomberg私有.NET Framework软件?

仅当工作站未安装相应的本机Microsoft .NET Framework软件时,才会安装这些软件组件.如果本机Microsoft版本(3.5 SP1和4)都不存在,则在初始安装期间仅安装专用v3.5 SP1组件.私有v4版本的安装文件(bnetupd.exe)将被复制到\ blp\wintrv目录以便以后安装.

这听起来像是在分发他们自己的.NET Framework版本,如果工作站没有安装官方.NET Framework,则使用该版本.这背后的基本原理可以简单到避免对用户工作站进行重大更改:

  • 如果您已经安装了.NET Framework,则应用程序可以使用它,因为不需要对工作站进行任何更改.
  • 如果您尚未安装.NET Framework,那么供应商不会假设您希望安装它,因此他们会捆绑自己的构建版本,该构建版本仅适用于其应用程序,而不是与您可能拥有的其他软件共享.

关于你如何做这样的事情的问题,答案是首先你需要有一些允许你这样做的许可证.通常,您可以使用其"默认"许可证获得一个软件,或者您可以与其供应商协商更方便的许可证.在任何情况下,您都需要确保许可证允许这种使用和再分发拥有.

从那以后,可能有多种方法可以解决它(包括接收源代码和制作自定义构建,使用自定义链接器或捆绑工具 - 或者在启动时使用某种技巧).

观察该供应商的安装程序在虚拟机中的行为,我看到框架程序集确实部署为本机映像在自定义目录中,似乎模仿典型.NET安装目录的结构.这个自定义目录的名称%WINDIR%,对我来说似乎建议使用环境变量进行某种重定向(因为,如果你取消设置一个环境变量,它会"扩展"到它的名字).

在任何情况下,部署的框架仅由供应商的软件使用,并且似乎不会影响其他.NET应用程序,他们只是忽略它.所以私有.NET Framework这个短语相当准确.

  • @HagenvonEitzen我已经完成了上述工具的安装,看看他们到底做了什么.正如预期的那样,这个私有的.NET框架不会安装在Windows目录中,而是安装在另一个自定义的.NET框架中.它只涉及供应商的软件 - 其他基于.NET的二进制文件只是忽略它. (9认同)

Tom*_*bes 7

Microsoft决定不发布可再发行的.NET Framework 3.5 for Windows 8,Windows 10,Windows 2012服务器和在线安装程序经常无法正常工作.因此其他供应商需要创建自己的离线安装程序.它不是我遇到的第一个自制框架.即使它不合法,开发人员也会在Windows 8,Windows 10和Windows 2012服务器上推动支持.NET 3.5应用程序.