3

我有一个复杂的应用程序,它不能与 CRT 静态链接,但另一方面不需要安装管理员权限(因为它没有做任何需要它的事情)。安装 CRT 使其可以动态链接的正常方法是安装 MS 可分发 CRT,但它需要管理员权限。

我正在考虑简单地将 MSVCRT100 DLL 与可执行文件放在同一目录中以缓解问题,但我不确定这种做法是否有任何缺点,因为它在我看到的任何地方都没有得到宽恕或谴责。除了遵循静态链接与安装可分发文件的通常做法之外,是否有任何理由不这样做?

4

1 回答 1

4

简短的回答是可以。

它甚至是微软网站上部署应用程序http://msdn.microsoft.com/en-us/library/dd293565.aspx的选项之一

复制适当的 MFC 和 C 运行时 (CRT) 库文件,例如,对于 x86 平台和 Unicode 支持,从 \Program Files\Microsoft Visual Studio 10.0\VC\redist\x86\ 复制 mfc100u.dll 和 msvcr100.dll — 然后将它们粘贴到 MFC 项目的 \Release\ 文件夹中。有关您可能必须复制的其他文件的更多信息,请参阅确定要重新分发的 DLL。


缺点是可再发行包由微软安全修复程序更新。因此,如果部署了安全修复程序,您的应用程序将不会使用它并且可能仍然不安全。我不是一个狂热的粉丝,但它是 winsxs 目录的想法,并且从 Visual 7.0 开始体现,它“帮助”您的应用程序始终使用最佳版本。

于 2013-11-06T10:51:26.227 回答