Microsoft的最佳做法要求我们出于安全原因动态链接到VC ++运行时,如果我们的应用程序自动选择修补程序而不需要我们单独的应用程序更新,那肯定会很好。
然而,在过去的几年里,我一直在为Evolve客户安装。安装客户端的最大问题是vcredist安装失败。最大的错误代码是:
1612:此产品的安装源不可用。验证源是否存在以及您是否可以访问它。
1638:已安装此产品的另一个版本。此版本的安装无法继续。要配置或删除此产品的现有版本,请使用“控制面板”上的“添加/删除程序”。
我们还run in to cases,其中某些第三方应用程序在64位版本的Windows上手动在System32中安装了32位版本的msvcr100.dll,显然导致系统上的所有应用程序依靠这个失败。
现在,我的问题是:如果开发商希望遵循微软的指导方针,那么如果我们的产品不能可靠,我们如何才能取得成功?安装?我现在处于十字路口,我只看到两个选择:
将我的所有二进制文件静态链接到运行时,并获取二进制大小的命中以及与之相关的安全隐患。
手动分发VC ++运行时DLL并将其转储到我的应用程序文件夹中,虽然我甚至不知道我是否允许这样做。
其他人在那里做什么?