防止 Windows Installer 使用最大驱动器存储临时文件

ste*_*wpf 6 windows windows-installer

默认情况下,Windows Installer 使用最大的驱动器进行临时存储,无论是否需要(意味着系统驱动器上也有足够的空间)。

摘自http://msdn.microsoft.com/en-us/library/aa371372%28VS.85%29.aspx

在管理安装期间,安装程序将 ROOTDRIVE 设置为它发现可以写入的第一个连接的网络驱动器。如果不是管理安装,或者安装程序找不到网络驱动器,则安装程序会将 ROOTDRIVE 设置为可写入的本地驱动器,使其具有最多的可用空间。

现在我的系统驱动器是 SSD,我最大的驱动器是 RAID,它在不使用时会降低转速。还记得 SSD 作为系统驱动器吗?现在一切都安静了!直到我安装了一些东西并且 Windows Installer 再次唤醒我的 RAID 只是为了在它上面放一个小的 .tmp 文件......我怎样才能阻止 Windows Installer 使用最大的驱动器作为临时存储?我可以设置一些访问权限来禁止 Windows 安装程序在我的 RAID 驱动器上写入吗?还有其他想法吗?谢谢!

小智 5

在注册表中编辑这些条目(指向所需的驱动器,在本例中为 C:)对我有用 - Server 2012

HKEY_CLASSES_ROOT\Msi.Package\shell\Open\command
"%SystemRoot%\System32\msiexec.exe" /i "%1" ROOTDRIVE=C:\ %*

HKEY_CLASSES_ROOT\Msi.Package\shell\Repair\command
"%SystemRoot%\System32\msiexec.exe" /f "%1" ROOTDRIVE=C:\ %*

HKEY_CLASSES_ROOT\Msi.Package\shell\Uninstall\command
"%SystemRoot%\System32\msiexec.exe" /x "%1" ROOTDRIVE=C:\ %*

HKEY_CLASSES_ROOT\Msi.Patch\shell\Open\command
"%SystemRoot%\System32\msiexec.exe" /p "%1" ROOTDRIVE=C:\ %*
Run Code Online (Sandbox Code Playgroud)