【问题标题】:How to remove license dialog from the Wix installer built in UI WixUI_Minimal如何从 UI WixUI_Minimal 中内置的 Wix 安装程序中删除许可证对话框
【发布时间】:2015-05-20 17:38:40
【问题描述】:

为了自定义对话顺序,我尝试按照 WixToolSet 站点 (Linkwix recommended steps) 中提供的说明进行操作,但未能获得结果。

已完成的步骤:

  • 将 UI 从源代码复制到新的 wxs 文件。
  • 更改了 UI 元素的 ID
  • 无需进一步修改即可构建项目。

上述步骤导致以下错误。

错误 4 发现重复符号“ControlEvent:WelcomeDlg/Next/NewDialog/VerifyReadyDlg/Installed AND PATCH”。这通常意味着 Id 是重复的。 检查以确保给定类型(文件、组件、功能)的所有标识符都是唯一的。

我的意图是在 installui 序列中进行更改并构建解决方案,但我无法继续。

【问题讨论】:

    标签: wix installation


    【解决方案1】:

    试试这个代码

    <UI Id="WixUI_InstallDir">
        <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
        <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
        <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
    
        <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
        <Property Id="WixUI_Mode" Value="InstallDir" />
    
        <DialogRef Id="BrowseDlg" />
        <DialogRef Id="DiskCostDlg" />
        <DialogRef Id="ErrorDlg" />
        <DialogRef Id="FatalError" />
        <DialogRef Id="FilesInUse" />
        <DialogRef Id="MsiRMFilesInUse" />
        <DialogRef Id="PrepareDlg" />
        <DialogRef Id="ProgressDlg" />
        <DialogRef Id="ResumeDlg" />
        <DialogRef Id="UserExit" />
    
        <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="3">1</Publish>
        <Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4"><![CDATA[WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
    
        <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
    
        <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg">NOT Installed</Publish>
        <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">Installed
    AND PATCH</Publish>
    
        <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
        <Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath"
    Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
        <Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath"
    Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish>
        <Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg"
    Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
        <Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg"
    Order="4">WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish>
        <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty"
    Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
        <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
    
        <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="InstallDirDlg"
    Order="1">NOT Installed</Publish>
        <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg"
    Order="2">Installed AND NOT PATCH</Publish>
        <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg"
    Order="2">Installed AND PATCH</Publish>
    
        <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
    
        <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
        <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
        <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
    
        <Property Id="ARPNOMODIFY" Value="1" />
    </UI>
    <UIRef Id="WixUI_Common" />
    

    参考:http://comments.gmane.org/gmane.comp.windows.devel.wix.user/65550

    【讨论】:

      【解决方案2】:

      感谢 LeoN。

      我做了更多的实验并找到了解决方案。 步骤:

      • 将 UI 从源代码 (WixUI_Minimal.wxs) 复制到产品 续。
      • 更改了 UI 元素的 id 移除了 uisequence 元素
      • 修改了 UI 条件。构建运行良好的项目。

      下面粘贴的修改代码

      <?xml version="1.0" encoding="UTF-8"?>
      

      <UI Id="WixUI_MinimalX">
        <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
        <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
        <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
      
        <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
        <Property Id="WixUI_Mode" Value="Minimal" />
      
        <DialogRef Id="ErrorDlg" />
        <DialogRef Id="FatalError" />
        <DialogRef Id="FilesInUse" />
        <DialogRef Id="MsiRMFilesInUse" />
        <DialogRef Id="PrepareDlg" />
        <DialogRef Id="ProgressDlg" />
        <DialogRef Id="ResumeDlg" />
        <DialogRef Id="UserExit" />
        <DialogRef Id="WelcomeDlg" />
      
        <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
      
        <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
      
        <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
      
        <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
        <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
        <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
      
        <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
        <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">1</Publish>
      
      
        <Property Id="ARPNOMODIFY" Value="1" />
      </UI>
      
      <UIRef Id="WixUI_Common" />
      
      <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
      <MediaTemplate EmbedCab="yes"/>
      
          <Feature Id="ProductFeature" Title="WixInstallerStudy" Level="1">
              <ComponentGroupRef Id="ProductComponents" />
          </Feature>
      </Product>
      
      <Fragment>
          <Directory Id="TARGETDIR" Name="SourceDir">
              <Directory Id="ProgramFilesFolder">
                  <Directory Id="INSTALLFOLDER" Name="WixInstallerStudy" />
              </Directory>
          </Directory>
      </Fragment>
      
      <Fragment>
          <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
              <!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
               <Component Id="ProductComponent">         
           <File Id='Test.Txt' Name='Test.Txt' DiskId='1' Source='.\2.0\Test.txt' KeyPath='yes' DefaultVersion='1.0' Checksum='yes'>
           </File>
         </Component>
         <Component Id="ProductComponent2">
          <File Id='TestCopy.txt' Name='Test - Copy.txt' DiskId='1' Source='.\2.0\Test - Copy.txt' KeyPath='yes' >
          </File>
        </Component>
      
          </ComponentGroup>
      </Fragment>
      

      发现如果有 ui 序列,它会给你很多意想不到的错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-11
        • 2012-10-14
        • 1970-01-01
        • 1970-01-01
        • 2018-02-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多