1

我有一个应用程序 A,我为其创建了安装程序 A1。这已经使用了好几个月了。

我们现在意识到 AI 曾经打包过一些不需要的文件 - d1,d2,d3。

因此,我们将它们从我们的项目中删除并创建了一个安装程序 A2,它不打包上述不需要的文件。(至少这是我们所期望的)

当我以通常的方式使用此安装程序时一切正常...但是当我将其用于静默安装时,我收到以下错误:

错误 1334。无法安装文件 d1,因为在压缩包文件“myMedia1.cab”中找不到该文件。这可能表示网络错误、从 CD-ROM 读取错误或此软件包有问题。

我用谷歌搜索了这个,发现人们通常会在你发布补丁或某些安装程序版本时遇到这种情况,其中一些文件被删除或移动。

显然,msiexec 尝试引用这些变量的某些缓存版本,并且由于它仍在新安装程序中查找丢失的文件,因此安装失败。

有没有办法解决这个问题?- 就像让 msiexec 只使用我在输入中提供的 .msi 文件而不是一些缓存版本的某种方式。

谢谢...

4

2 回答 2

0

如果您尚未更新 A2 安装程序的 PackageCode、ProductCode 或 UpgradeCode,您可能会收到此错误。如果安装了 A1,然后 A2 使用相同的 PackageCode、ProductCode 和 UpgradeCode 运行,系统会认为您正在再次运行 A1 安装程序,并将在 C:\windows\installer 下查找缓存的 A1 msi。

于 2013-08-09T03:23:12.677 回答
0

对于像我这样在构建安装项目时遇到相同问题(错误 1334)并且没有找到任何解释或解决方案的其他人,这里有一个线程解决了我的问题:

https://www.itninja.com/question/1334-error-tried-just-about-everything-i-can-think-of-anyone-know-of-some-obscure-causes

基本上,该问题的解决方案是“接触”安装项目中引用的所有文件(即所有依赖项 - DLL 和其他所有文件)。您可以在构建输出中找到所有文件的列表和路径,如下所示:

2>  Copying file from "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\System.Threading.dll" to "C:\Path\To\Your\Project\bin\Debug\System.Threading.dll".

要“触摸”文件,您可以使用此技术,也可以使用第三方文件管理器,例如Total Commander。您只需要以管理员身份运行/接受 UAC 警告,因为某些文件位于系统文件夹中。



编辑:就我而言,安装项目的问题是在更新主项目使用的一些 NuGet 包后开始的。

PS:虽然我没有使用 WiX,但是Microsoft Visual Studio Installer Projects,症状是一样的,所以我希望这个答案对某人有所帮助。

于 2019-12-24T18:58:53.927 回答