Windows installer Windows安装程序重新安装模式代码v

Windows installer Windows安装程序重新安装模式代码v,windows-installer,msdn,Windows Installer,Msdn,我正在阅读有关Windows Installer的文章,我有一个关于代码v的问题 文档中说:“用于从源程序包运行并重新缓存本地程序包。不要在首次安装应用程序或功能时使用v重新安装选项代码。” 有人能提供更好的解释吗?有一个缓存版本的MSI(\Windows\installer)经常使用十六进制名称,用于修复、卸载和类似的一般维护操作。你可能知道。它在第一次安装时就放在那里了,这就是为什么在第一次安装时不使用它的原因,但是我知道在第一次安装时没有什么好的理由使用重新安装模式。我的意思是它正在重新安

我正在阅读有关Windows Installer的文章,我有一个关于代码v的问题

文档中说:“用于从源程序包运行并重新缓存本地程序包。不要在首次安装应用程序或功能时使用v重新安装选项代码。”


有人能提供更好的解释吗?

有一个缓存版本的MSI(\Windows\installer)经常使用十六进制名称,用于修复、卸载和类似的一般维护操作。你可能知道。它在第一次安装时就放在那里了,这就是为什么在第一次安装时不使用它的原因,但是我知道在第一次安装时没有什么好的理由使用重新安装模式。我的意思是它正在重新安装,产品已经在那里了

有一个缓存版本的MSI(\Windows\installer),通常使用十六进制名称,用于修复、卸载和类似的一般维护操作。你可能知道。它在第一次安装时就放在那里了,这就是为什么在第一次安装时不使用它的原因,但是我知道在第一次安装时没有什么好的理由使用重新安装模式。我的意思是它正在重新安装,产品已经在那里了

重新安装模式的
v
代码对于小更新和小升级(即重新缓存和修复操作)非常有用。在这些场景中(与修补程序场景相反),您试图用新的包替换现有包,并且需要类似地替换缓存副本。缓存允许在不需要原始介质的情况下进行修复和删除,并且必须保持最新


我不清楚为什么Windows Installer足够聪明,可以在第一次安装时缓存.msi,但不会在小更新或小升级时自动这样做。

重新安装模式的
v
代码对于小更新和小升级非常有用,这些场景是重新缓存和修复操作。在这些场景中(与修补程序场景相反),您试图用新的包替换现有包,并且需要类似地替换缓存副本。缓存允许在不需要原始介质的情况下进行修复和删除,并且必须保持最新


我不清楚为什么Windows Installer足够聪明,可以在第一次安装时缓存.msi,但在小更新或小升级时不会自动这样做。

我有时建议重新安装mode=“emus”(替换相同或更高版本)作为命令行,用于不增加其程序集文件版本的用户-请参阅。它比amus稍微好一点,但我认为如果你在MSI中有一个受保护的文件,那么它可能会在更新的Windows版本上触发相同的文件保护错误——尽管从未见过这种情况发生。我想我应该建议真正的解决方案:修复发布过程并增加版本,或者在必要时使用。REINSTALLMODE=“emus”和非增量程序集版本的荒谬之处在于,在野外会有版本相同和二进制不同的文件。我想象不出这有什么好处。我只需将1.0.0.*设置为始终自动增加构建版本。我有时建议重新安装mode=“emus”(替换相同或更高版本)作为命令行,用于不增加其程序集文件版本的用户-请参阅。它比amus稍微好一点,但我认为如果你在MSI中有一个受保护的文件,那么它可能会在更新的Windows版本上触发相同的文件保护错误——尽管从未见过这种情况发生。我想我应该建议真正的解决方案:修复发布过程并增加版本,或者在必要时使用。REINSTALLMODE=“emus”和非增量程序集版本的荒谬之处在于,在野外会有版本相同和二进制不同的文件。我想象不出这有什么好处。我只想设置1.0.0.*以始终自动增加构建版本。最后一条评论是MSI真正吸引我的地方——它遭受了许多荒谬的事情,使生活变得不必要的复杂。转换及其缓存的草率处理(不确定这是否在最近的MSI版本中得到了修复)是另一个问题。基本操作的SDK级复杂性。最后一条评论是MSI真正吸引我的地方——它遭受了许多荒谬的事情,使生活变得不必要的复杂。转换及其缓存的草率处理(不确定这是否在最近的MSI版本中得到了修复)是另一个问题。基本操作的SDK级复杂性。