Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

WiX Toolset Registry Key auslesen und verwenden


Best Answer snibchi , 09 August 2017 - 08:38

Es funktioniert doch. Mein Fehler! Danke.

Go to the full post


1 reply to this topic

snibchi

snibchi
  • Full Members
  • 2 posts

Posted 08 August 2017 - 15:05


Hallo zusammen. Ich hoffe mir kann hier geholfen werden.

In der Produkt.wxs von WiX Toolset möchte ich für meine App einen Registry Eintrag für das Documenten Verzeichnis des Users vor nehmen.

 

Die Environment Variable '%USERPROFILE%' führt nicht zum Ziel, da sie den Standardwert für hdd c:\ enthält. Das Gleiche gilt für die Windows Variable 'PersonalFolder'. Das Documents Verzeichnis wurde auf 'd:\Documents' verschoben.

 

Ich muss wohl den Registry Key:

.
.
.        
<Property Id="MYDOCUMENTSFOLDER">
          <RegistrySearch Id="MyDocumentsSearch"
            Root="HKCU"
            Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
            Name="Personal"
            Type="raw" />
</Property>
</Fragment>

auslesen. Dieser hat den richtigen wert.

 

Es gelingt mir nicht den Wert auszulesen und weiter zu verwenden. Z. B. so:

            <!-- make registry entries. -->
            <Component Id="RegistryEntries" Guid="9C346690-C7B9-4D19-9D3B-FDEF50C1B36E">
                <RegistryKey Root="HKLM" Key="SOFTWARE\!(bind.property.Manufacturer)\!(bind.property.ProductName)">
                    <RegistryValue Type="integer" Name="Database" Value="1" />
                    <RegistryValue Type="string" Name="ProgramPath" Value="[INSTALLFOLDER]" />
                    <RegistryValue Type="string" Name="Version" Value="!(bind.property.ProductVersion)" />
                    <RegistryValue Type="string" Name="License" Value="Free" />
                    <RegistryValue Type="string" Name="Language" Value="de_DE" />
                </RegistryKey>
                <RegistryKey Root="HKLM" Key="SOFTWARE\!(bind.property.Manufacturer)\!(bind.property.ProductName)\Data1">
                    <RegistryValue Type="string" Name="DataPathLocation" Value="[MYDOCUMENTSFOLDER]\!(bind.property.Manufacturer)\!(bind.property.ProductName)\" />
                    <RegistryValue Type="integer" Name="onStartSaveYesNo" Value="0" />
                    <RegistryValue Type="integer" Name="toOneDrive" Value="0" />
                    <RegistryValue Type="string" Name="savePath" Value="" />
                    <RegistryValue Type="integer" Name="onStatisticsSaveYesNo" Value="0" />
                    <RegistryValue Type="integer" Name="monthMax" Value="12" />
                </RegistryKey>
            </Component>

Kann mir bitte jemand auf die Sprünge helfen?

 



snibchi

snibchi
  • Full Members
  • 2 posts

Posted 09 August 2017 - 08:38   Best Answer

Es funktioniert doch. Mein Fehler! Danke.