Windows Installer将USB驱动器用于临时用途


13

安装基于Windows Installer构建的应用程序时,似乎会在扩展和安装应用程序时(使用GUID名称从根目录创建一个文件夹)时,经常使用我的外部USB硬盘(连接时)作为临时位置。 。无论如何,要更改它,使其始终默认为特定驱动器吗?

在Windows Vista和7上似乎是这种情况,不确定以前的版本。

编辑:当前环境变量看起来像这样:

TEMP=C:\Users\<me>\AppData\Local\Temp
TMP=C:\Users\<me>\AppData\Local\Temp

编辑:我有一个有趣的怀疑,它正在使用具有最大可用空间的驱动器。


我不知道是否可以更改它,但是我会告诉您为什么会发生。它使用具有更多可用空间的驱动器来输出带有文件的临时目录,并且如您所说,其名称将是唯一的。
Xandy

2
我相信您正在使用“使用最大可用空间”进行编辑。我的经历完全是轶事,但是在安装操作系统后不久,我就向Windows 7盒中添加了1 TB的HDD。第二天,它运行Windows更新。我还没有在新驱动器上放任何文件,重新启动后,我发现有一堆临时文件藏在那里。
TechParadox

Answers:


13

我相信Windows Installer使用了%TMP%环境变量。您可能需要检查此值,并查看它是否恰好指向您的外接硬盘驱动器号。

更新

很奇怪...这似乎是Windows Installer的“功能”(要使用具有最大可用空间的驱动器)。我找不到禁用它的选项。我想知道您是否可以通过权限/只读标志或类似内容将系统锁定。令我感到困惑的是,Microsoft不会给您选择关闭此功能的选项。

第二次更新

好的-我找到了有关ROOTDRIVE属性的文章。特别注意:

如果未在命令行上设置ROOTDRIVE或未将其创建到“属性”表中,则安装程序将设置此属性。在进行管理性安装期间,安装程序会将ROOTDRIVE设置为它发现可以写入的第一个连接的网络驱动器。如果不是管理员安装,或者安装程序找不到任何网络驱动器,则安装程序会将ROOTDRIVE设置为可写入的具有最大可用空间的本地驱动器


我不这么认为。我的%TEMP%和%TMP%变量指向我的C:驱动器,安装程序经常将文件复制到我的R:驱动器。
斯纳克

TEMP和TMP设置为:C:\ Users \ <me> \ AppData \ Local \ Temp
Douglas Anderson 2009年

我遇到了类似的情况。不知道该怎么办。
Vivek

我了解如果未设置ROOTDRIVE属性,则临时文件将以最大的可用空间进入磁盘。但是,更有趣的问题是,为什么安装完成后没有自动删除这些临时(!)文件?
Erik

3

我在专门用于个人照片和家庭视频的外部硬盘上遇到了这个问题。我为所有用户禁用了“删除”权限,以防止丢失任何数据。但是,驱动器开始填满MSI tmp文件。拒绝任何自动删除以及任何清理工具,因为(如上所述),因为我拒绝了删除权限。我的解决方案是关闭所有用户的目标驱动器上的所有权限(一个用户的“写”特权除外),从而避免操作系统首先写入驱动器。希望这可以帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.