Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Visual Studio 2010: Windows Installer using msiexec.exe returns MSI Error 2727

I've got a Visual Studio Setup Project that uses the msiexec.exe file to create an Uninstall item as outlined in >> THIS << article on SO.

The Installer does not run.

When I launch the installer by double-clicking the setup.exe file, the "Please wait while setup launches" screen barely blips on the screen before I am confronted with my error.

Error Code 2727

The Text is (for search functions):

The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2727.

I have found a set of MSI Error Codes, and Error Code 2727 translates to

The directory entry '[2]' does not exist in the Directory table.

Could someone guide me towards fixing this? What should I do?

[UPDATE]

At the suggestion of Cosmin Pirvu, I have created an error log for my installer. After looking it over, it appears my installation error could be the result of having a link to the Not Installed file msiexec.exe that I use in conjunction with my Project's [ProductCode] to create an Uninstall link.

The log file shown below appears to indicate that my installation fails when the installer attempts to create a temporary file for msiexec.exe, then it has another failure when it tries to display the Error Icon.

The file >> install.log on Google Sites << is my Error Log file's output (Hint: just do a search for Return value 3 to get to the errors).

[UPDATE 2]

I have an Uninstall link in the setup project that links back to the batch file uninstall.bat in my main project:

@echo off
%windir%\system32\msiexec.exe /x %1

The Arguments to the Uninstall link is only [ProductCode], since the /x switch is hard coded into the batch file.

[Solution]:

The Visual Studio Installer was not creating a folder that had some required DLLs in it.

like image 970
jp2code Avatar asked Jul 26 '11 16:07

jp2code


People also ask

Where should msiexec exe be located?

The file location of the Msiexec.exe file should be similar to C:\Windows\System32. On the File menu, click Close.

What does the program do Windows Installer Msiexec exe?

MsiExec.exe is the executable program of the Windows Installer used to interpret installation packages and install products on target systems. After you build your release, you can install your Windows Installer package (. msi) from the command line.


4 Answers

The first step should be creating an installation log to see what triggers the error.

From the log you posted, it seems like your MSI tries to use a directory which is not in Directory table. Are you using any merge modules or special custom actions? If so, try to determine if they try to use a directory from your package.

You mentioned something about an uninstall shortcut. Can you give us more details?

like image 112
rmrrm Avatar answered May 05 '23 16:05

rmrrm


Old question, I know - just wanted to add in some information that helped me with the Windows Installer project in Visual Studio 2015, in case anyone comes across this topic.

I got the same error message, 2727. My issue was that I was including my source code into an "src" folder in the installation directory. When looking at the output files for the source, I noticed several files like this:

\obj\Release\\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs

Yes, it included that extra slash after Release. I had to add an exclusion (right click Source Files output -> ExcludeFilter) to exclude these files from installing. I added "*Temporary*" to exclude only these files.

Maybe someone else can explain why these temporary files were generated, all I know is that this fixed the issue. Hopefully this will help someone else looking for this topic.

like image 44
Adam Elders Avatar answered May 05 '23 18:05

Adam Elders


I know its a Old question, but like @Riccaforte I was having some trouble to fix this in Visual Studio 2015. What I did was just delete all my Source Files inside my Aplication Folder, and I don't know why, but it did the trick.

like image 37
Andre Aquiles Avatar answered May 05 '23 18:05

Andre Aquiles


If you remove a directory or directories from the Directory Table, This will cause an issue with other tables still using those directory variables.

like image 31
Dennis Avatar answered May 05 '23 16:05

Dennis