Wix自定义安装目录错误2727

时间:2015-04-11 07:25:17

标签: visual-studio-2013 wix wix3.9

我为我的应用程序创建了一个wix安装程序。 一切正常,除非我在下一个对话框中为机器上的所有用户选择安装,我选择了安装目录,我得到了错误。

enter image description here enter image description here 单击“下一步”显示上面的错误

Windows安装程序提供以下详细信息 2727目录表中不存在目录条目“2”。

Product.wxs包含

<UI>
      <UIRef Id="WixUI_ErrorProgressText" />
      <UIRef Id="UISequence" />
    </UI>

Wix文件

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
    <!--Adding dialogs-->
    <UI Id="UISequence">
      <Property Id="ApplicationFolderName" Value="AppName" />
      <Property Id="WixAppFolder" Value="WixPerMachineFolder" />
      <UIRef Id="WixUI_Advanced"/>
      <Publish Dialog="ExitDialog"
    Control="Finish"
    Event="DoAction"
    Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>

    </UI>

    <!--Including License agreement-->
    <WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
    <!--<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />-->

    <!--Exit Dialog-->
    <Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="Thank you for installing this product." />

    <!--Provide Launch Application Option-->
    <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch AppName" />
    <Property Id="WixShellExecTarget" Value="[#AppExeName.exe]" />
    <CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes"/>

  </Fragment>
</Wix>

如果我不进步,一切正常。已为所有用户安装应用程序。

我到处查看,但没有发现这种情况正在发生。

请帮助,我在这里错过了什么。

3 个答案:

答案 0 :(得分:2)

我使用 APPLICATIONFOLDER 修复了错误2727。

之前:

    <Directory Id="TARGETDIR" Name="SourceDir">
     <Directory Id="ProgramFilesFolder">
      <Directory Id="CompanyFolder" Name="Company">
       <Directory Id="InstallFolder" Name="MyProgram"/>
      </Directory>
     </Directory>
    </Directory>

后:

    <Directory Id="TARGETDIR" Name="SourceDir">
     <Directory Id="ProgramFilesFolder">
      <Directory Id="CompanyFolder" Name="Company">
       <Directory Id="APPLICATIONFOLDER" Name="MyProgram"/>
      </Directory>
     </Directory>
    </Directory>

答案 1 :(得分:1)

要查看实际错误,必须使用以下命令运行安装 msiexec /i SoftwareSetup.msi /L*V C:\logs\<logfilename>.log

在我的情况下,当我有2727而没有任何线索时,我使用上述命令运行了msi,并在日志中清楚地说明了

**错误2727是“目录条目'[XYZ]'在 目录表**

因此,存在用于目录XYZ的设置目标路径的发布事件,但在product.wxs的目录结构/条目中。 所以我不得不删除不必要的set target path publish事件,一切正常。

但是要获得确切的故障是什么,请像我在第一句话中提到的那样,使用misexec运行您的应用程序。

答案 2 :(得分:0)

增加: 这很奇怪,但在使用WIXUI时很可能:

<UI Id="MyWixUI_Mondo">
  <UIRef Id="WixUI_Advanced" />
</UI>    

是最佳选择:

<Property Id="ApplicationFolderName" Value="Company\MyProgram" />
<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="APPLICATIONFOLDER" Name="Anything"/>
  </Directory>
</Directory>

实际的WIXUI设置文件夹将是&#34; Program Files \ Company \ MyProgram&#34;,而不是&#34; Program Files \ Anything&#34;