【问题标题】:Visual Studio 2010: Windows Installer using msiexec.exe returns MSI Error 2727Visual Studio 2010:使用 msiexec.exe 的 Windows 安装程序返回 MSI 错误 2727
【发布时间】:2011-10-13 14:24:25
【问题描述】:

我有一个 Visual Studio 安装项目,它使用 msiexec.exe 文件创建一个 Uninstall 项,如>> THIS << 关于 SO 的文章中所述。

安装程序没有运行。

当我通过双击 setup.exe 文件启动安装程序时,在我遇到错误之前,“请稍候,正在启动安装程序”屏幕几乎没有闪烁。

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

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

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

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

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

[更新]

Cosmin Pirvu 的建议下,我为我的安装程序创建了一个错误日志。仔细查看后,我的安装错误似乎是由于我与我的项目的@987654328 一起使用的 Not Installed 文件 msiexec.exe 的链接导致的@ 创建一个卸载链接。

下面显示的日志文件似乎表明,当安装程序尝试为 msiexec.exe 创建临时文件时,我的安装失败,然后在尝试显示错误图标时又失败了。

文件>> install.log on Google Sites << 是我的错误日志文件的输出(提示:只需搜索Return value 3 即可找到错误)。

[更新 2]

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

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

卸载链接Arguments 只是[ProductCode],因为/x 开关被硬编码到批处理文件中。

[解决方案]:

Visual Studio 安装程序未创建包含一些必需 DLL 的文件夹。

【问题讨论】:

  • 尝试创建详细的安装日志以查看触发错误的原因。
  • 给我一些关于如何去做的提示。除了我抛出的错误消息之外,事件查看器中甚至没有任何内容。也许我的app.config 文件不对。 ???
  • 或许这篇文章会有所帮助:setupanddeployment.com/debugging/msi-log
  • 请把它作为答案。我将更新我的问题以包含我生成的日志文件。

标签: visual-studio-2010 windows-installer


【解决方案1】:

第一步应该是创建一个installation log,看看是什么触发了错误。

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

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

【讨论】:

  • 嗨科斯敏。我更新了我的问题以提供有关快捷方式的更多信息,但基本上它只是指向我已包含在我的解决方案中的 批处理文件
  • 快捷方式没问题。问题是由其他原因引起的。您可以将 MSI 发布到某个地方或通过电子邮件发送给我,以便我看一下吗?
【解决方案2】:

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

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

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

是的,它在 Release 之后包含了那个额外的斜线。我必须添加一个排除项(右键单击源文件输出 -> ExcludeFilter)以从安装中排除这些文件。我添加了“*Temporary*”以仅排除这些文件。

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

【讨论】:

    【解决方案3】:

    我知道这是一个老问题,但就像@Riccaforte 我在 Visual Studio 2015 中解决这个问题时遇到了一些麻烦。我所做的只是删除了我的应用程序文件夹中的所有源文件,我不知道为什么,但它成功了。

    【讨论】:

      【解决方案4】:

      如果您从目录表中删除一个或多个目录,这将导致其他表仍在使用这些目录变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多