4

Microsoft 的最佳实践要求我们出于安全原因动态链接到 VC++ 运行时,如果我们的应用程序自动获取修补程序而不需要我们这边单独的应用程序更新,那肯定会很好。

然而,在过去的几年里,我一直在为Evolve客户端制作安装程序。我们安装客户端的一个最大问题是由 vcredist 安装失败引起的。最大的错误代码是:

  • 1612:此产品的安装源不可用。验证源是否存在并且您可以访问它。

  • 1638:已安装此产品的另一个版本。此版本的安装无法继续。要配置或删除本产品的现有版本,请使用控制面板上的添加/删除程序。

我们还遇到过一些第三方应用程序在 64 位版本的 Windows 上手动安装了 System32 中 32 位版本的 msvcr100.dll 的情况,显然导致系统上依赖于此的所有应用程序失败。

现在,我的问题是:如果开发人员想要遵循 Microsoft 的指导方针以造福于这片土地,如果我们的产品不能可靠地安装,我们如何取得成功?我现在正处于一个十字路口,我只看到两个选择:

  1. 将我所有的二进制文件静态链接到运行时,并影响二进制大小和与之相关的安全隐患。

  2. 手动分发 VC++ 运行时 DLL 并将它们转储到我的应用程序文件夹中,尽管我什至不知道是否允许这样做。

其他人在外面做什么?

4

0 回答 0