Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 安装后MSI文件复制到何处?_.net_Windows_Windows Xp_Windows Installer - Fatal编程技术网

.net 安装后MSI文件复制到何处?

.net 安装后MSI文件复制到何处?,.net,windows,windows-xp,windows-installer,.net,Windows,Windows Xp,Windows Installer,我必须更换它,因为有一个bug阻止了软件卸载,但是如果我使用文件搜索实用程序,Windows找不到MSI文件,但是我认为MSI存储在添加或删除程序实用程序可以使用它的地方。可能MSI已经被删除了。您可以删除安装文件夹并运行msi清理实用程序,然后重新安装程序。它不是进入%windir%\installer吗\ 尽管我认为这些文件可能会被重命名。不确定从何处获取名称映射 这个目录变得非常大,所以我将它移动到一个外部驱动器。这有时会导致卸载或更新失败,并导致缺少msi错误,但这可以通过将目录放回来修

我必须更换它,因为有一个bug阻止了软件卸载,但是如果我使用文件搜索实用程序,Windows找不到MSI文件,但是我认为MSI存储在
添加或删除程序
实用程序可以使用它的地方。

可能MSI已经被删除了。您可以删除安装文件夹并运行msi清理实用程序,然后重新安装程序。

它不是进入%windir%\installer吗\

尽管我认为这些文件可能会被重命名。不确定从何处获取名称映射


这个目录变得非常大,所以我将它移动到一个外部驱动器。这有时会导致卸载或更新失败,并导致缺少msi错误,但这可以通过将目录放回来修复

您可以使用with MSIEXEC强制重新缓存/重新安装,更新无法删除的错误安装包的推荐方法是使用固定包重新缓存,然后像往常一样卸载

MSIEXEC /fv setup.msi

当您使用Windows Installer服务安装软件包时,msi文件不会被删除 缓存在隐藏文件夹“%windir%\installer”中。它确实会被重命名,新名称是一个十六进制字符串,与原始名称没有明显的相关性。类似于“123ab4.msi”的东西

不难看出哪一个是应用程序的缓存副本。 最快的方法是查找大小相同的缓存文件。当您认为已经找到它时,请将指针悬停在Windows资源管理器中的文件名上。工具提示将出现,它将显示包的摘要信息流中的数据。产品名称、作者姓名等。找到正确的文件后,可以使用Orca之类的工具直接对其进行编辑

如果您只是想在自己的机器上修复问题,那么直接编辑缓存的数据库可能是一个不错的选择。然而,微软确实提供了一种内置的方法来处理这样的问题。您可以创建修补程序(msp文件),其中包含原始msi文件和更新的msi文件之间的差异。然后,该修补程序可以分发给使用原始安装程序已经安装了您的应用程序的任何其他人,并且它将易于使用

MSDN在此处讨论修补程序创建-


删除隐藏文件夹通常不是一个好主意,因为这会破坏安装程序服务的一些核心功能。这包括修补、检测和修复,以及通过迁移而不是卸载和重新安装进行升级的功能。

要在
C:\Windows\Installer
中查看msi文件的有用名称,请右键单击资源管理器顶部,并将字段添加到“查看主题”中(可能需要选择更多,因为它不是默认的名称、修改日期等)从这里您可以找到msi并使用它卸载程序。

我在接受的答案中写了很多评论,所以我想我宁愿在创建一个包含更多细节的摘要后发布一个答案:

Installshield将*.msi文件的副本创建到
%windir%\installer\
路径中,其中%windir%是一个环境变量,通常指向
C:\Windows\
。在创建*.msi文件副本之前,它会使用一些随机命名法对其进行重命名。例如,我可以在我的
C:\Windows\Ins中看到一个名为
65ec5c99.msi
的文件更高的
目录

现在,要计算重命名的MSI文件的实际产品名称,有两种方法:

  • 检查注册表中路径-
    [HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]处的
    LocalPackage
    属性‌​n\Installer\UserData‌​\\公共关系‌​产品\‌​\InstallProperties]
    InternalUserId
    是某种类型的
    S-1-5-18
    ProductGUID
    是一种类似
    00058CD18F0BF523DA107273D56715D
    的GUID,作为公共属性嵌入到MSI文件本身中。您可以使用任何工具(例如orca)打开MSI文件来检查此公共属性

  • 在资源管理器中打开
    C:\Windows\Installer
    文件夹。将目录视图更改为
    Details
    视图。在视图中添加
    Subject
    列。哇!!谜团已经解开。产品名就在
    Subject
    列中


  • Excellent!我确信现在该文件已重命名,但您可以在Windows注册表中找到新名称。啊,很高兴您知道如何在注册表内路径-
    处获取重命名MSI文件检查
    LocalPackage
    属性的映射[HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\\Products\\InstallProperties]
    InternalUserId
    是某种类型的
    S-1-5-18
    ProductGUID
    是一种类似
    00058cd18f0bf523da01073d56715d
    的GUID,作为公共属性嵌入到MSI文件中。
    %windir%\installer\
    目录在资源管理器中不可见,除非我们选中
    显示隐藏的文件、文件夹和驱动器
    并取消选中“查看文件夹选项”下的“隐藏受保护的操作系统文件(推荐)”
    高级设置。MSIZAP(Windows Installer Cleanup)是一个非常危险的工具。有关更多信息,请参阅。修复卸载问题的推荐/正确方法是使用“热修复程序”的小升级安装的产品,然后触发其固定卸载序列,如saschabeaumont所示。小升级可以作为常规MSI或修补程序包(对于大型产品)交付。供将来参考。如果windows设置为德语的任何人试图在资源管理器中显示“主题”列:激活“Betreff”