我与该供应商没有任何关联,因此显然无法代表他们发言。说完这个...
他们的常见问题解答中说:
什么是Bloomberg私有.NET Framework软件?
如果工作站没有相应的Microsoft .NET Framework本机软件,则只安装这些软件组件。 如果两个本机Microsoft版本(3.5 SP1和4)都不存在,则在初始安装期间仅会安装私有v3.5 SP1组件。 私有v4版本的安装文件(bnetupd.exe)将被复制到 \blp\wintrv 目录,以便稍后安装。
这听起来像他们正在分发自己的.NET Framework版本,并且如果用户的工作站没有安装官方的.NET Framework,则使用该版本。 其背后的原理可能很简单,就是为了避免对用户的工作站进行重大更改:
关于如何做到这一点的问题,答案是首先需要获得允许您执行此操作的许可证。通常,您可以使用“默认”许可证获取软件,或者您可以与供应商协商更方便的许可证。无论哪种情况,您都需要确保您拥有的许可证允许此类使用和重新分发。
从这里开始,你可能有多种方法去做(包括获取源代码并制作自定义构建,使用自定义链接器或绑定工具 -- 或者在启动时使用某种诡计)。
观察该供应商安装程序在虚拟机内的行为,我看到框架程序集确实部署为本地镜像在一个自定义目录中,该目录似乎模仿了典型的.NET安装目录结构。那个自定义目录的名称是%WINDIR%
,这对我来说似乎暗示着一种使用环境变量进行重定向的方法(因为,如果您取消设置一个环境变量,它将“扩展”为其名称)。
无论如何,部署的框架仅被供应商的软件使用,并不影响其他.NET应用程序,它们只是忽略它。因此,短语私有.NET Framework是相当准确的。
微软决定不发布适用于Windows 8、Windows 10、Windows 2012服务器的可再分发.NET Framework 3.5,同时在线安装程序经常无法正常工作。所以其他供应商需要创建自己的离线安装程序,这不是我遇到的第一个自制框架。即使这并不合法,开发人员也被迫支持在Windows 8、Windows 10和Windows 2012服务器上使用.NET 3.5应用程序。