在我正在处理的项目中,我们可以访问msvcp120_clr0400.dll
但不能msvcp120.dll
在运行时环境中访问,与msvcr120.dll
和相同msvcp120_clr0400.dll
。(DLL 位于 SysWOW64 中)
无法安装 Visual C++ 2013 Redistributable(这些 DLL 的来源),因为我们的分发包大小有限。出于许可原因,我们无法自行分发 DLL,但可以将每个 DLL 复制并重命名为我们在安装时需要的 DLL 的名称。现在这显然是一个 hack,但据我所知,这些 DLL 的差异很小。
复制和重命名 DLL 并不理想,所以我正在考虑使用https://github.com/zeroKilo/ProxyDllMaker之类的东西创建一个 DLL 代理,并分发名为原始 DLL 的代理,但它的所有调用都只是转到我们知道的 DLL我们在 SysWOW64 中有。
1. 有没有人有更多关于这些 DLL 之间差异的信息?
(在这种情况下,CLR 是否代表公共语言运行时?)
2. 是否有不安装 Visual C++ 2013 可再发行组件的替代解决方案?