cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
MRKiscaden
Level 5

I get Error 2705. Invalid Table: Directory; when installing a patch file.

I have a Basic MSI project. It uses Dynamic file linking with "include sub directories" for all of the files in my project.

When I build a patch, and attempt to apply it, I get the error "Error 2705. Invalid Table: Directory; Could not be linked as tree."

When I open the directory table for the upgraded MSI file, and trace back all of the directories, it forms a tree. No directories are orphaned. Furthermore, I am able to use the updated MSI file without any problems, it is only applying the patch file (.msp) that fails.

What is really confusing is this problem does not happen every time I build this patch. It will work great for one build. I will then do a second build without changing the project file, and the second build encounters the error.
Labels (1)
0 Kudos
(4) Replies
cbarlow
Level 7

Just had the same problem. Could it have something to do with the fact that I'm patching a 7.0.0.0 with a 7.0.0.1? In the build log I noticed that patches don't recognize the fourth element. But why would I get this error when trying to run the patch? If the fourth element is ignored, shouldn't the patch still run without actually changing any of the files?
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

This issue is typically caused by dynamic file linking when not using the "previous package" setting in the latest release to ensure component, file, and directory keys are syned between the two packages. This can also occur with the Directory table if the folder structure from the new MSI is not identical to the MSI being patched (caused by removing folders). In either case, the directory structure in the Directory table has changed in the patch, and when applied against the previous MSI package's Directory table, the directory hierarchy cannot be constructed.

When building the upgraded MSI package, ensure the directory structures included by dynamic file links have not changed from the base MSI, and specify the base MSI package in the upgraded package's previous package setting.
0 Kudos
tschley
Level 3

I get the same error (2705) under the following conditions:

Scenario 1 (works without errors)
1. Create patch using an existing msi
2. Existing msi has ProductCode ABC and PackageCode XYZ
3. Installed product has ProductCode ABC and PackageCode XYZ

Scenario 2 (results in error 2705)
1. Use the same patch created in scenario 1 above
2. Installed product has ProductCode ABC and PackageCode DEF
3. I would not expect the patch to identify the installed product (since the Package Code is different), but it launches, presents the Welcome screen, and then produces error 2705. So, in this scenario, I don't want the installed product patched; just proper messaging

I have tried using the ExcludedPackages table(add PackageCode DEF) in the Quick Patch project, but this does not help.
0 Kudos
solomon4yk
Level 2

I have experienced the same kind of problem.
After some investigation and reading several posts I decided to look inside the .isl file. I found broken link to the ProgramMenu Shortcut. After removing corresponding entries the problem was fixed.

How did I get broken link to the shortcut.
1. Inside the ProgramMenu Predefined Folder I created needed folders (the same folders as in INSTALLDIR).
2. In Project Assistant \ Application Shortcuts I created needed shortcut.
3. After installing the application I got 2 same folders in ProgramMenu, one of which was empty.
4. I removed these folders from ProgramMenu Predefined Folder and noticed that in Project Assistant \ Application Shortcuts previous shortcut was gone.
5. I created shortcut again, and then got the error.

Hope it will help somebody.

Regards
Paul
0 Kudos