|
|
1
8
合并模块安装后无法更新(除非它们在Windows Installer中解决了这一问题),因此我的建议是坚持使用vcredit.exe。 |
|
|
2
6
我最近遇到的合并模块的另一个问题是,它们将MSI安装程序属性ALLUSERS设置为1,这意味着每台机器。这就迫使您的整个安装是每台机器进行的,如果您希望它是每用户进行的,这是一个问题。是否有一种方法可以让每个用户安装一个包含CRT合并模块的安装程序,我不知道,但我还没有找到它。 |
|
|
3
5
合并模块的一个缺点是不能在同一msi中部署多个版本的VC80或VC90合并模块,因为文件标识符重叠。不过,您可以分别部署其中一个。例如,如果您想要部署VC80的RTM版本和SP1版本,那么如果它们在同一个msi(我使用WiX)中,您将得到错误。 另一个问题是,构建行为与VS2005/2008不同,因为它涉及应用service pack或更新。 2005 如果在生成计算机上安装service pack 1,则程序将自动链接到更新的文件。service pack还将更新合并模块,因此只要您让安装程序使用更新的文件,就可以了。但是,如果您使用的是第三方编译的静态libs,可能需要较旧版本的运行库,那么这可能是一个问题。
这意味着,如果您使用的是VisualStudio提供的msm,并且应用了SP1,则在定义宏之前,项目部署将中断。 宏的另一个警告:如果使用的是链接到2008静态库的2005项目,则设置宏将破坏2005项目,因为2005版本的编译器中不存在符号。在这种情况下,我通常将链接的项目拆分为2005和2008版本的解决方案。 |
|
|
4
3
显而易见,如果您不打算使用MSI安装程序,那么合并模块并不是一个好的解决方案。无论您使用的是什么安装过程,vcredit的使用都非常简单。 |
|
|
5
2
MSM将为您提供比vcredist更好的流线型体验,它将与进度条集成,并在出现错误时回滚(或取消)。
由于以上所有原因,我通常选择使用msm(及其或多或少的一个Wix衬里)。 |
|
|
6
0
你考虑过静态链接吗?那么你就没有再分配问题了。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |