簡體   English   中英

如何為 .NET 項目創建自定義 Wix 安裝程序?

[英]How to create a custom Wix Installer for a .NET project?

我需要創建一個 Wix 安裝程序,這將允許我有一個對話框,用戶可以在其中輸入序列號,然后我需要將他們輸入的序列號保存到 Windows 注冊表中。

此外,如果他們沒有輸入序列號,則需要禁用下一步按鈕,這樣他們就無法繼續安裝,如果他們沒有輸入序列號。

WIX 不支持按鍵事件,例如您希望在用戶輸入按鍵時必須啟用下一步按鈕。 最好的選擇是提供下一步按鈕並調用自定義操作來檢查密鑰是否正確,如果不正確則拋出錯誤消息。

<Dialog Id="UserRegistrationDlg" Width="370" Height="270" Title="[ProductName] [Setup]" NoMinimize="yes">
  <Control Id="OrganizationLabel" Type="Text" X="45" Y="80" Width="100" Height="15" TabSkip="no" Text="&amp;Organization:" />
  <Control Id="OrganizationEdit" Type="Edit" X="45" Y="95" Width="220" Height="18" Property="COMPANYNAME" Text="{80}" />
  <Control Id="CDKeyLabel" Type="Text" X="45" Y="125" Width="50" Height="10" TabSkip="no">
    <Text>License &amp;Key:</Text>
  </Control>
  <Control Id="CDKeyEdit" Type="MaskedEdit" X="45" Y="140" Width="250" Height="16" Property="PIDKEY" Text="[PIDTemplate]" />

  <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&amp;Back">
    <Publish Event="NewDialog" Value="[WixUI_UserRegistrationDlg_Back]">1</Publish>
  </Control>

  <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&amp;Next">
    <Publish Event="ValidateProductID" Value="0">0</Publish>
    <Publish Event="DoAction" Value="CheckingPID">1</Publish>
    <Publish Event="SpawnDialog" Value="InvalidPidDlg">PIDACCEPTED = "0"</Publish>
    <Publish Event="NewDialog" Value="[WixUI_UserRegistrationDlg_Next]">PIDACCEPTED = "1"</Publish>
  </Control>

  <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
    <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
  </Control>
</Dialog>

<Dialog Id="InvalidPidDlg" Width="260" Height="85" Title="[ProductName] [Setup]" NoMinimize="yes">
  <Control Id="Return" Type="PushButton" X="100" Y="57" Width="56" Height="17" Default="yes" Cancel="yes" Text="Ok">
    <Publish Event="EndDialog" Value="Return">1</Publish>
  </Control>
  <Control Id="Text" Type="Text" X="48" Y="15" Width="194" Height="30" TabSkip="no">
    <Text>[USERERRMSG]</Text>
  </Control>
</Dialog>

InvlaidPidDlg 將顯示錯誤信息。 從自定義操作中,您需要設置“USERERRMSG”的值

看看這篇文章,它解釋了如何在基於 Wix 的安裝程序中創建自定義對話框

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM