visual-studio-2013 - Wix自定义安装目录错误2727

标签 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>

如果我不去高级,一切正常。为所有用户安装应用程序。

我到处查了一下,还没有发现这种情况。

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

最佳答案

我使用 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>

添加: 这很奇怪,但在使用 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 安装文件夹将是“Program Files\Company\MyProgram”,而不是“Program Files\Anything”

关于visual-studio-2013 - Wix自定义安装目录错误2727,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29575265/

相关文章:

Wix 如何隐藏功能选项(无子功能)

wix - 在我的刻录 Bootstrap 中打包 .Net 可再发行组件

Wix ProgramFiles64文件夹仍然是

c++ - Visual Studio 2013 中的 select_on_container_copy_construction 内部错误

visual-studio-2013 - 脚手架 Controller 不适用于 Visual Studio 2013 update 2

c++ - 面向 XP 的 Visual Studio 2013 的 Visual C++ 编译器标志

windows - Wix:安装 MSMQ 组件

visual-studio-2013 - Lightswitch 在 Visual Studio 2013 中不起作用

c++ - 列表框属性值未出现在 C++ 自定义操作 Wix 中?

ms-access - 从 WIX 安装程序读取 Access 数据库