我在C++ Windows应用程序工作在Visual Studio 2010中为最终客户
我想送我的应用我的客户这样他就可以伊斯利使用它提供C++应用程序,而无需安装视觉运行时的义务FX。并在每个地方执行。
如何设置安装程序,以便客户无需单独安装任何必需的Visual Studio运行时库?
请我想要一个解决这个问题的方法,因为我的用户远离计算机,他们只喜欢“下一个,下一个,安装,完成”系统。
谢谢你的帮助。
我在C++ Windows应用程序工作在Visual Studio 2010中为最终客户
我想送我的应用我的客户这样他就可以伊斯利使用它提供C++应用程序,而无需安装视觉运行时的义务FX。并在每个地方执行。
如何设置安装程序,以便客户无需单独安装任何必需的Visual Studio运行时库?
请我想要一个解决这个问题的方法,因为我的用户远离计算机,他们只喜欢“下一个,下一个,安装,完成”系统。
谢谢你的帮助。
通常,这些选项是静态链接,私有部署,使用合并模块重用某个elses逻辑或通过使用引导程序重新分发prereq。
这是不可能给出一个确切的答案不知道你确切的依赖关系是什么,但这里是亲的和反对的每个:
静态链接 - 简单,因为其中没有部署其他那么你的文件。主要的缺点是,如果图书馆具有安全可用性并需要修补,那么无需重建和重新部署应用程序即可。
私人部署 - 相对容易,因为您只需在应用程序目录中部署该文件。由于您必须重建和重新部署应用程序,因此仍然存在服务问题。微软不会修补你的目录。
合并模块 - 看起来很简单,只需添加合并模块。尽管如此,如果合并模块出现问题,您仍然受到供应商的摆布,但仍然存在主要问题。 (微软)。这就是为什么在这些日子里合并模块的使用受到诟病的原因。
redist - 最难实现(您需要setup.exe引导程序定义),但最简单的方法是重用其他人的安装程序。这是最佳的,因为该供应商可以修补该dll而不重建您的dll。
所以一般来说,redists是要走的路。但并不总是...... :)
这是一个很好的答案:彻底,干净,易于阅读。 –
真的吗?当我提到prereq和bootstrappers而没有解释它们是什么时,我想我会失去每个人。 :) –
一般来说,你有两个选择:
建立一个安装程序(使用,例如,维克斯或NSIS)。安装程序将安装您的应用程序以及任何所需的库。由于您正在分发您的应用程序,因此您有可能已经在构建安装程序,因此此解决方案很有意义。
静态链接您的文件与任何所需的库。这样,您的应用程序可执行文件就会包含它所需的所有代码。这当然假设您正在使用的库可以静态链接。情况可能并非如此。
你要么静态链接你的产品,使其不具有任何外部依赖,或者你包括MSI Merge Modules当你生成安装程序需要运行时组件。
我已尽力将您的问题“修复”到我认为您所问的问题上,但它可能仍会最终关闭。 – CashCow
我想这取决于你正在使用的安装程序工具。可能有运行时的打包安装程序,您可以将它们用作部件。 – dutt
如果您对C++和Visual Studio 2010有合理的能力,则一起安装MSI安装包应该是前瞻性的。 Windows SDK和Visual Studio都包含如何将应用程序分发到目标主机的示例。 – WhozCraig