开发者

What can cause Error 2902 when installing an MSI?

One of our MSI's has started failing with Error 2902. It'll get most of the way through the installation, pop an error box, and then back out the install. We haven't made any major changes to the installer since the last working version.

Running msiexec with logging turned on gives a more informative message:

Actio开发者_开发知识库n 17:21:22: RegisterProduct. Registering product
Error 2902:  Operation ixoFileCopy called out of sequence

This comes immediately after the "WriteRegistryValues" section. Does anyone know what causes the call to ixoFileCopy? I'm guessing the resolution will involve changing the sequence of the "RegisterProduct" step, but I'm not sure what it should proceed.

Thanks for any help!


It turns out that in our case this was happening due to a data file getting too big for MSI to handle without chunking the cab. This thread mentions the issue and one possible workaround.


I had the same error.

Apparently, there were files missing or corrupted (network error?). The problem has been solved after copying the whole folder again.


I've also seen this error when components are provided with blank guids.

e.g.

<Component Id="cmp_MyFailingComponent" Guid="">
  <File Id="f_myFile"
    Assembly=".net"
    Source="C:\Program Files\MyFile.dll"
    KeyPath="yes"/>
</Component>


I've seen this error when some of the database column fields are longer than the column width.

I had converted an MSI into an InstallShield project, made a few additions, and built a new MSI - it built without any errors. Installation then failed with error 2902.

The components that failed had component names longer than the allowed 72 characters. (see Component table) The original MSI worked fine despite having the long names, but I guess they caused InstallShield to improperly build the MSI somehow. Not InstallShield's fault, although I do think it should have raised an error during the build.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜