2011-05-13 25 views
7

onarılırken kayıt defteri ayarlarını devre dışı bırakıyor Şu anda, kullanıcının yükleme sırasında bir kayıt defteri anahtarı ayarlamasını sağlamak için Wix_InstallDirDlg dosyasını özelleştirdim. Hem InstallDirDlg hem de MaintenanceTypeDlg sonrasında gösterilen özel bir iletişim kutusu vardır, böylece hem yükleme hem de onarım senaryolarını kapsar.Wix yükleyici,

Özel iletişim kutusu, bir özelliğe bağlı tek bir metin kutusuna sahiptir. Bu özellikte bir kayıt defteri araması vardır, böylece kullanıcının önceki değeri onarması veya yükseltmesi korunur ve bu nedenle kullanıcının onaylaması için özel iletişim kutusunda gösterilir. Diyalog kurulumda iyi çalışır ve kayıt defteri anahtarı oluşturulur. Ancak, onarım yaparken, özel iletişim kutusu girilen doğru kayıt defteri değeriyle birlikte görüntülenir (bu nedenle RegistrySearch çalışıyordur), ancak onarım tamamlandığında anahtar değeri boştur.

<Property Id='SERVER_LISTEN_URL'> 
      <RegistrySearch Id='ServerListenUrlRegSearch' Root='HKLM' 
          Key='SOFTWARE\$(var.Manufacturer)\$(var.Name)' 
          Name='ServerListenUrl' 
          Type='raw' Win64='no' /> 
     </Property> 

<Component Id="RegistryEntries" Guid="0234974B-6158-4312-90A7-56869809B42E"> 
     <RegistryKey Id="ServerRegKey" 
       Root="HKLM" 
       Key='SOFTWARE\$(var.Manufacturer)\$(var.Name)' 
       Action='createAndRemoveOnUninstall'> 
      <RegistryValue Id="ServerListenUrlRegVal" 
         Name='ServerListenUrl' 
         Value='[SERVER_LISTEN_URL]' 
         KeyPath='yes' 
         Type='string' /> 
     </RegistryKey> 
</Component> 

<Dialog Id="SettingsDlg"> 
    <Control Id="ListenUrl" Type="Edit" X="20" Y="100" Width="320" Height="18" Property="SERVER_LISTEN_URL" Indirect="no" /> 
</Dialog> 

Neyi yanlış yaptım?

cevap

7

Göndermeden hemen sonra bunu kendim hallettim. Çalışmak için bir gün geçirdim, bu yüzden umarım ki bu biraz acı çekecektir. Tek yapmanız gereken mülkü güvenli bir mülke dönüştürmektir.

<Property Id='SERVER_LISTEN_URL' Secure='yes'> 
     <RegistrySearch Id='ServerListenUrlRegSearch' Root='HKLM' 
         Key='SOFTWARE\$(var.Manufacturer)\$(var.Name)' 
         Name='ServerListenUrl' 
         Type='raw' Win64='no' /> 
</Property> 
3

Güvenli özelliklerinin, bir "yükleme yükseltilmiş" boyunca (sistem bağlamında çalışır) sunucu işlemi (kullanım bağlamında çalışır) istemci işleminden içeriklerini geçebilir. Başka bir deyişle, yönetici olmayan bir kullanıcı tarafından çağrılan bir yükleme. Hangi özelliklerin güvenli olduğu konusunda fazla cömert olmayın, ancak Yükseltme tablosunda kullanılan tüm özellikleri ve yaptığınız gibi çok önemli bilgiler için GUI'de kullanılan tüm özel özellikleri kesinlikle ekleyin.

http://msdn.microsoft.com/en-us/library/aa371571(v=vs.85).aspx

+0

açıklama için teşekkürler, artık işe yaramadı neden mantıklı. Wix derleyicisinin (veya Orca'nın) güvenli olması gereken bir özelliği kullandığımı algılayamaması utanç verici! –

+0

Mağaraya katılıyorum. Windows yükleyicide çok fazla tuzak var. Wix aslında size neyin açık olduğundan biraz daha fazla yardımcı oluyor, ama hala iyileştirme için bir yer var. –