Visual Studio 2010:使用msiexec.exe的Windows Installer返回MSI错误2727

时间:2011-07-26 16:48:31

标签: visual-studio-2010 windows-installer

我有一个Visual Studio安装项目,该项目使用 msiexec.exe 文件创建卸载项目,如>> THIS <<文章中所述。

安装程序无法运行。

当我通过双击 setup.exe 文件启动安装程序时,在我遇到错误之前,屏幕上的“请等待安装程序启动”屏幕几乎不亮。

Error Code 2727

文本是(对于搜索功能):

  

安装程序在安装此程序包时遇到意外错误。这可能表明此包装存在问题。错误代码是2727。

我找到了一组MSI Error Codes,错误代码2727转换为

  

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

有人可以指导我解决这个问题吗?我该怎么办?

[UPDATE]

根据Cosmin Pirvu的建议,我为安装程序创建了一个错误日志。查看后,看来我的安装错误可能是因为我连接到我的项目{{{em>未安装文件 msiexec.exe 的链接。 1}}创建卸载链接。

如果安装程序尝试为 msiexec.exe 创建临时文件,则显示下面显示的日志文件表示我的安装失败,然后在尝试显示错误图标时出现另一个失败。

文件>> install.log on Google Sites <<是我的错误日志文件的输出(提示:只需搜索[ProductCode]以获取错误)。

[更新2]

我在安装项目中有一个卸载链接,它链接回主项目中的批处理文件Return value 3

uninstall.bat

卸载链接@echo off %windir%\system32\msiexec.exe /x %1 仅为Arguments,因为[ProductCode]开关已硬编码到批处理文件中。

[解决方法]:

Visual Studio Installer未创建包含某些必需DLL的文件夹。

4 个答案:

答案 0 :(得分:4)

老问题,我知道 - 只是想添加一些帮助我使用Visual Studio 2015中的Windows Installer项目的信息,以防有人遇到这个主题。

我收到了同样的错误消息,2727。我的问题是我将源代码包含在&#34; src&#34;安装目录中的文件夹。在查看源的输出文件时,我注意到了几个这样的文件:

\ OBJ \推出\\ TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs

是的,它包括释放后的额外斜线。我必须添加一个排除(右键单击源文件输出 - &gt; ExcludeFilter)以从安装中排除这些文件。我添加了&#34; *临时*&#34;只排除这些文件。

也许其他人可以解释为什么生成这些临时文件,我所知道的是这解决了这个问题。希望这有助于其他人寻找这个话题。

答案 1 :(得分:3)

第一步应该是创建installation log以查看触发错误的原因。

从您发布的日志中,您的MSI似乎尝试使用目录表中没有的目录。您使用的是合并模块还是特殊的自定义操作?如果是这样,请尝试确定他们是否尝试使用您的包中的目录。

您提到了有关卸载快捷方式的信息。你能告诉我们更多细节吗?

答案 2 :(得分:2)

我知道这是一个老问题,但是像@Riccaforte一样,我在Visual Studio 2015中遇到了一些麻烦。我所做的只是删除我的Aplication文件夹中的所有源文件,我不知道为什么,但它确实做到了。

答案 3 :(得分:1)

如果从目录表中删除一个或多个目录,这将导致仍然使用这些目录变量的其他表出现问题。