2

Wix toolset 3.10

Finally I managed to make a simple mock window for installer...But I have failed to overwrite the default value SxSFolder of the property SXS_PATH...

My conception in the install sequence:

  1. After a LicenseAgreementDlg, a customized dialog named WindowsServerRolesAndFeaturesDlg spawns.
  2. In the WindowsServerRolesAndFeaturesDlg, user can browse BrowseDlg to input the explorer path to a path edit TxtDir (id est property SXS_PATH overwritten)
  3. Pushing next button in the customized window, a CustomAction SetCustomActionData to store the property for the deferred CustomAction OfflineSxSInstall.
  4. Finally, in the SetupTypeDlg, install button fires the deferred CustomAction OfflineSxSInstall with the path which user choosing in the BrowseDlg explorer.

But when I saw the custom install, OfflineSxSInstall output the result of SXS_PATH not changed by the BrowseDlg.

What is wrong? I would appreciate any help.

main.wxs
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Name="Hoge 1.12.0" Id="19DF906A-47EE-4B80-ABE8-D1D3F0D89136" UpgradeCode="9357FAA3-91F9-4976-882F-05F4098BBBE8" Language="1041" Codepage="932" Version="1.12.0" Manufacturer="Fuga">
        <Package Id="*" Keywords="Installer" Description="Hoge 1.12.0 Installer" Comments="Hoge is register trademark of Fuga company" Manufacturer="Fuga" InstallerVersion="100" Languages="1041" Compressed="yes" SummaryCodepage="932" />
        <Property Id="CMD">
          <DirectorySearch Id="CmdFolder" Path="[SystemFolder]" Depth="1">
            <FileSearch Id="CmdExe" Name="cmd.exe"  />
          </DirectorySearch>
        </Property>
        <Media Id="1" Cabinet="Sample.cab" EmbedCab="yes" DiskPrompt="CD-ROM 1" />
        <Property Id="DiskPrompt" Value="Fuga Hoge 1.12.0 Installer [1]" />
        <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
        <Property Id="SXS_PATH" Secure="yes" Value="SxSFolder" />
        <Property Id="SQLSERVER_INSTANCE_PATH" Secure="yes" Value="SQLServerFolder" />

        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="ProgramFilesFolder" Name="PFiles">
                <Directory Id="Hoge" Name="Hoge">
                    <Directory Id="INSTALLDIR" Name="Hoge 1.0">
                        <Component Id="CONFIGURE.BAT" DiskId="1" Guid="041ED78B-3D42-4EBD-8DAE-29D94DEFFC20">
                         <File KeyPath="yes" Id="file_configure.bat" Name="configure.bat" Source="configure.bat" />
                        </Component>
                    </Directory>
                </Directory>
            </Directory>
            <Directory Id="ProgramMenuFolder" Name="Programs">
            </Directory>
            <Directory Id="SxSFolder" Name="SxS" />
            <Directory Id="SQLServerFolder" Name="SQLServer">
            </Directory>
            <Directory Id="DesktopFolder" Name="Desktop" />
        </Directory>


        <Feature Id="Complete" Title="Hoge 1.12.0" Description="Perfect Package" Display="expand" Level="1" ConfigurableDirectory="INSTALLDIR">
            <Feature Id="MainProgram" Title="Program" Description="Main Program。" Level="1">
                <ComponentRef Id="CONFIGURE.BAT" />
            </Feature>
        </Feature>
        <UI Id="MyWixUI_Mondo">
            <UIRef Id="WixUI_Mondo" />

            <DialogRef Id="WindowsServerRolesAndFeaturesDlg" />
            <Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="WindowsServerRolesAndFeaturesDlg" Order="2">
             LicenseAccepted = "1"
            </Publish>
            <Publish Dialog="WindowsServerRolesAndFeaturesDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg" Order="2">
             LicenseAccepted = "1"
            </Publish>
              <Publish Dialog="WindowsServerRolesAndFeaturesDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg">LicenseAccepted = "1"</Publish>
              <Publish Dialog="WindowsServerRolesAndFeaturesDlg" Control="Next" Event="SetTargetPath" Value="[SXS_PATH]" Order="2">1</Publish>
              <Publish Dialog="WindowsServerRolesAndFeaturesDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[SXS_PATH]" Order="1">1</Publish>
              <Publish Dialog="WindowsServerRolesAndFeaturesDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
        </UI>
        <UIRef Id="WixUI_ErrorProgressText" />
        <InstallExecuteSequence>
            <Custom Action="OfflineSxSInstall" After="InstallFiles">NOT Installed</Custom>
        </InstallExecuteSequence>  
    </Product>
</Wix>


WindowsServerRolesAndFeaturesDlg
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
        <CustomAction Id="SetCustomActionData" Return="check" Property="OfflineSxSInstall" Value="SXS_PATH=[SXS_PATH]" />
        <CustomAction Id="OfflineSxSInstall" Property="CMD" Execute="deferred" Return="check" Impersonate="yes" ExeCommand="/c &quot;&quot;[#file_configure.bat]&quot; &quot;[SXS_PATH]&quot;&quot;" />

        <Property Id="ONOFF_PROPERTY" Secure="yes" Value="0" />

        <UI>
            <Dialog Id="WindowsServerRolesAndFeaturesDlg" Width="370" Height="270" Title="[ProductName] [Setup]" NoMinimize="yes">
                <Control Id="RdxOnlineOffline" Type="RadioButtonGroup" X="40" Y="63" Width="300" Height="35" Property="ONOFF_PROPERTY" Text="Choose Install Method:">
                    <RadioButtonGroup Property="ONOFF_PROPERTY">
                        <RadioButton Value="0" X="0" Y="0" Width="300" Height="15" Text="Available Windows Update" />
                        <RadioButton Value="1" X="0" Y="20" Width="300" Height="15" Text="Offline Install" />
                    </RadioButtonGroup>
                </Control>
                <Control Id="SourcePath" Type="Text" X="45" Y="98" Width="200" Height="15" TabSkip="no" Text="Input SxS source path(&amp;U):" />
                <Control Type="PathEdit" Id="TxtDir" X="45" Y="110" Width="220" Height="18" Property="SXS_PATH" Indirect="yes">
                    <Condition Action="disable"><![CDATA[ONOFF_PROPERTY <> "1"]]></Condition>
                    <Condition Action="enable"><![CDATA[ONOFF_PROPERTY = "1"]]></Condition>
                </Control>
                <Control Id="ChangeFolder" Type="PushButton" X="265" Y="110" Width="56" Height="18" Text="Browse...">
                    <Condition Action="disable"><![CDATA[ONOFF_PROPERTY <> "1"]]></Condition>
                    <Condition Action="enable"><![CDATA[ONOFF_PROPERTY = "1"]]></Condition>
                </Control>
                <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back(&amp;B)">
                    <Publish Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
                </Control>
                <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next(&amp;N)">
                    <Publish Event="DoAction" Value="SetCustomActionData">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>
                <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
                <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
                    <Text>Install Windows IIS role and .NET Framework Features</Text>
                </Control>
                <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
                <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes">
                    <Text>{\WixUI_Font_Title}Add Windows IIS role and .NET Framework Features</Text>
                </Control>
                <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
            </Dialog>
        </UI>
    </Fragment>
</Wix>

configure.bat content is below: It copies the hoge.txt to a hoge{%date% without slash}.txt and writes %1 parameter inside. Output result is "SxSFolder"

setlocal
echo on

copy /Y C:\temp\hoge\hoge.txt C:\temp\hoge\hoge%date:~-10,4%%date:~-5,2%%date:~-2,2%.txt
echo %1 > C:\temp\hoge\hoge%date:~-10,4%%date:~-5,2%%date:~-2,2%.txt 2>&1
echo off
endlocal
exit /B 0

P.S. This is a supplementary information...I failed to understand the meaning of the value "SxSFolder" which is defined in the tag Directory Id="SxSFolder" Name="SxS"...(BrowseDlg PathEdit understands it as "C:\SxS\" as initial value...) I want to set the path (probably contained in the overwritten SxSFolder.Name...) to CustomActionData.... But how to do...?

P.S 2. I changed CustomActions to set ["directory id"] after reading Reference directory install path in registry value using Wix.... but still batch output result is "C:\SxS\"....(Not Overwritten by BrowseDlg result....)

    <CustomAction Id="SetCustomActionData" Return="check" Property="OfflineSxSInstall" Value="SxSFolder=[SxSFolder]" />
    <CustomAction Id="OfflineSxSInstall" Property="CMD" Execute="deferred" Return="check" Impersonate="yes" ExeCommand="/c &quot;&quot;[#file_configure.bat]&quot; &quot;[SxSFolder]&quot;&quot;" />

P.S 3. msiexec /i {msi} /lv* (Sorry for Japanese Characters....) told me something overwritten the "SxSFolder" property, but result is still not overwritten....

200:アクション 10:39:37: BrowseDlg。Dialog created
201:MSI (c) (B8:7C) [10:39:40:095]: PROPERTY CHANGE: Modifying SxSFolder property. Its current value is 'C:\SxS\'. Its new value: 'C:\'.
202:MSI (c) (B8:7C) [10:39:43:411]: PROPERTY CHANGE: Modifying SxSFolder property. Its current value is 'C:\'. Its new value: 'C:\SxSDummy\'. (<--Overwritten Value)
203:MSI (c) (B8:7C) [10:39:44:259]: Note: 1: 2727 2:  
204:MSI (c) (B8:7C) [10:39:45:353]: Doing action: SetCustomActionData
205:アクション 10:39:45: SetCustomActionData。
206:アクション開始 10:39:45: SetCustomActionData。
207:MSI (c) (B8:7C) [10:39:45:353]: PROPERTY CHANGE: Adding OfflineSxSInstall property. Its value is 'SxSFolder=C:\SxSDummy\'.
208:アクション終了 10:39:45: SetCustomActionData。 戻り値 1。

764:Property(C): OfflineSxSInstall = SxSFolder=C:\SxSDummy\

769:Property(C): SxSFolder = C:\SxSDummy\

I uploaded a full verbose log

illuminate33
  • 117
  • 1
  • 9
  • can you post some of the relevant log snippet? Didn't come through very well on wix mailing list – JohnZaj Feb 13 '18 at 02:54
  • 1
    I posted a same question in Wix mailing list... – illuminate33 Feb 13 '18 at 04:56
  • @JohnZaj I posted same snippet in mailing list above. Full verbose dialog can be public, but I'm afraid it is too long for stackoverflow format... – illuminate33 Feb 13 '18 at 05:59
  • @JohnZaj If I should post full log, I will try. – illuminate33 Feb 13 '18 at 06:40
  • 1
    I uploaded a verbose log file and embedded the hyperlink. – illuminate33 Feb 13 '18 at 13:05
  • Line 614 says RollbackCleanup followed by line 751 ExitDialog action - is this log showing a successful install? Or is that part of the issue too? – JohnZaj Feb 13 '18 at 14:50
  • Also line 765: Property(C): OfflineSxSInstall = SxSFolder=C:\SxSDummy\ This is client Property(C) not server Property(S) side windows installer engine running at this point. I can't remember ever having to use a CustomAction syntax like: Value="SxSFolder=[SxSFolder]". How about try Value="[SxSFolder]"? Unless I'm lost on the larger goal on what you are trying to accomplish what you are trying to accomplish (other than get a path from a user browsing to folder and use that value later in deferred CA), not sure you need to have a property value contain your own embedded 'meta' value. – JohnZaj Feb 13 '18 at 15:09
  • @John Zaj Line 614 RollbackCleanup "Deleting Backup files..." by Japanese language. This log is successful install. – illuminate33 Feb 14 '18 at 00:51
  • About client Property(C), If I understand correctly, that is because I have tested the installer in Windows 7 professional (despite the fact that I want to use this installer in Server OS.) I'm sorry for confusing you, @JohnZaj. – illuminate33 Feb 14 '18 at 01:10
  • 1
    I changed the syntax to Value="[SxSFolder]", but the result is same(not overwritten of the batch output.) May I show you Verbose log again? – illuminate33 Feb 14 '18 at 01:15
  • @John Zaj I'm sorry that I confuse you, currently, I only want to get a path from a user browsing to folder and use that value later in deferred CA. – illuminate33 Feb 14 '18 at 01:17
  • 1
    May I ask you, what is 'meta' value? – illuminate33 Feb 14 '18 at 01:19
  • 1
    I want to move this discussion to chat, but my popularity in stackoverflow is not enough... – illuminate33 Feb 14 '18 at 01:34
  • I think you need to keep the property UPPERCASE so that it is public. You can post verbose log again sure, wish you could do something about the japanese characters. I've accomplished this before (browse folder path and set path to property value) however in somewhat a convoluted way (had wpf bootstrapper/wrapper so lots of abstraction). I'll try to dig up the wixtoolset src for it. However your logs should show if there is a scheduling issue. There are some patterns I followed for getting client side data to the server side using type51 'set property' custom actions I believe. – JohnZaj Feb 14 '18 at 16:51
  • @JohnZaj Thanks for your kindness despite the confusion derived from my laziness. (I will try to post problem more clearly next time.) – illuminate33 Feb 15 '18 at 00:51
  • @JohnZaj Thanks again for the existence of UPPERCASE property. I'm afraid I can hardly understand your comment terms, "scheduling issue", "client side data to the server side"...Probably next time...? – illuminate33 Feb 15 '18 at 00:56
  • scheduling: ensure that your deferred custom action runs after InstallInitialize and before InstallFinalize. client/server: I'm just suspecting that the part in the log: Adding OfflineSxSInstall property. Its value is 'SxSFolder=C:\SxSDummy\' might not be part of the issue. I'll try to take half an hour or so this weekend and compile this (it's been a while with wixtoolset for me) and see what's going. I should be able to post an example of how I am able to get this to work. Also - the WixToolset documentation in great, and when combined with the windows installer documentation, excellent – JohnZaj Feb 16 '18 at 03:15
  • @JohnZaj I see. I appreciate your concern. Wix is great but not enough Japanese community for newbies. – illuminate33 Feb 16 '18 at 09:42
  • shamelessly upvoting your comments so you can get enough for chat :) Otherwise ping me on google hangouts or skype or something else. jzajac2 is my handle on those – JohnZaj Feb 16 '18 at 21:06
  • @JohnZaj Thank you. – illuminate33 Feb 17 '18 at 13:36
  • any luck with this problem? Sorry, new computer, don't feel like I have all my bits ready, but once I do I can get a full working sample for you here – JohnZaj Feb 25 '18 at 01:06
  • @JohnZaj Currently I'm working on the topic (how to call long DISM command from Wix) https://stackoverflow.com/questions/48824644/wix-cannot-call-dism-from-wix-customaction, I hope I didn't cluelessly overlook something important you mentioned for my lack of English ability. – illuminate33 Feb 26 '18 at 04:04

1 Answers1

0

This is self reply. I removed all underbars and all lowercase characters from property id which set in the custom action.

Below is the wxs files which can overwrite the property by the BrowserDlg...

main.wxs

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Name="Hoge 1.12.0" Id="19DF906A-47EE-4B80-ABE8-D1D3F0D89136" UpgradeCode="9357FAA3-91F9-4976-882F-05F4098BBBE8" Language="1041" Codepage="932" Version="1.12.0" Manufacturer="Fuga">
        <Package Id="*" Keywords="Installer" Description="Hoge 1.12.0 Installer" Comments="Hoge is trademark of Fuga Inc." Manufacturer="Fuga" InstallerVersion="100" Languages="1041" Compressed="yes" SummaryCodepage="932" />
        <Property Id="CMD">
          <DirectorySearch Id="CmdFolder" Path="[SystemFolder]" Depth="1">
            <FileSearch Id="CmdExe" Name="cmd.exe"  />
          </DirectorySearch>
        </Property>
        <Media Id="1" Cabinet="Sample.cab" EmbedCab="yes" DiskPrompt="CD-ROM 1" />
        <Property Id="DiskPrompt" Value="Fuga Hoge 1.12.0 Installer [1]" />
        <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
        <Property Id="SXSPATH" Secure="yes" Value="SXSFOLDER" />

        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="ProgramFilesFolder" Name="PFiles">
                <Directory Id="Hoge" Name="Hoge">
                    <Directory Id="INSTALLDIR" Name="Hoge 1.0">
                        <Component Id="CONFIGURE.BAT" DiskId="1" Guid="041ED78B-3D42-4EBD-8DAE-29D94DEFFC20">
                         <File KeyPath="yes" Id="file_configure.bat" Name="configure.bat" Source="configure.bat" />
                        </Component>
                    </Directory>
                </Directory>
            </Directory>
            <Directory Id="ProgramMenuFolder" Name="Programs">
            </Directory>
            <Directory Id="SXSFOLDER" />
            <Directory Id="DesktopFolder" Name="Desktop" />
        </Directory>


        <Feature Id="Complete" Title="Hoge 1.12.0" Description="Full Package" Display="expand" Level="1" ConfigurableDirectory="INSTALLDIR">
            <Feature Id="MainProgram" Title="Program" Description="Main Executable File" Level="1">
                <ComponentRef Id="CONFIGURE.BAT" />
            </Feature>
        </Feature>
        <UI Id="MyWixUI_Mondo">
            <UIRef Id="WixUI_Mondo" />

            <DialogRef Id="WindowsServerRolesAndFeaturesDlg" />
            <Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="WindowsServerRolesAndFeaturesDlg" Order="2">
             LicenseAccepted = "1"
            </Publish>
            <Publish Dialog="WindowsServerRolesAndFeaturesDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg" Order="2">
             LicenseAccepted = "1"
            </Publish>
              <Publish Dialog="WindowsServerRolesAndFeaturesDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg">LicenseAccepted = "1"</Publish>
              <Publish Dialog="WindowsServerRolesAndFeaturesDlg" Control="Next" Event="SetTargetPath" Value="[SXSPATH]" Order="2">1</Publish>
              <Publish Dialog="WindowsServerRolesAndFeaturesDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[SXSPATH]" Order="1">1</Publish>
              <Publish Dialog="WindowsServerRolesAndFeaturesDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
        </UI>
        <UIRef Id="WixUI_ErrorProgressText" />
        <InstallExecuteSequence>
            <Custom Action="OfflineSxSInstall" After="InstallFiles">NOT Installed</Custom>
        </InstallExecuteSequence>  
    </Product>
</Wix>

WindowsServerRolesAndFeaturesDlg

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment>
        <CustomAction Id="SetCustomActionData" Return="check" Property="OfflineSxSInstall" Value="[SXSFOLDER]" />
        <CustomAction Id="OfflineSxSInstall" Property="CMD" Execute="deferred" Return="check" Impersonate="yes" ExeCommand="/c &quot;&quot;[#file_configure.bat]&quot; &quot;[SXSFOLDER]&quot;&quot;" />

        <Property Id="ONOFF_PROPERTY" Secure="yes" Value="0" />

        <UI>
            <Dialog Id="WindowsServerRolesAndFeaturesDlg" Width="370" Height="270" Title="[ProductName] [Setup]" NoMinimize="yes">
                <Control Id="RdxOnlineOffline" Type="RadioButtonGroup" X="40" Y="63" Width="300" Height="35" Property="ONOFF_PROPERTY" Text="Select Install Method:">
                    <RadioButtonGroup Property="ONOFF_PROPERTY">
                        <RadioButton Value="0" X="0" Y="0" Width="300" Height="15" Text="Available Windows Update" />
                        <RadioButton Value="1" X="0" Y="20" Width="300" Height="15" Text="Offline Install" />
                    </RadioButtonGroup>
                </Control>
                <Control Id="SourcePath" Type="Text" X="45" Y="98" Width="200" Height="15" TabSkip="no" Text="Input if offline and SxS source path available(&amp;U):" />
                <Control Type="PathEdit" Id="TxtDir" X="45" Y="110" Width="220" Height="18" Property="SXSPATH" Indirect="yes">
                    <Condition Action="disable"><![CDATA[ONOFF_PROPERTY <> "1"]]></Condition>
                    <Condition Action="enable"><![CDATA[ONOFF_PROPERTY = "1"]]></Condition>
                </Control>
                <Control Id="ChangeFolder" Type="PushButton" X="265" Y="110" Width="56" Height="18" Text="Browse...">
                    <Condition Action="disable"><![CDATA[ONOFF_PROPERTY <> "1"]]></Condition>
                    <Condition Action="enable"><![CDATA[ONOFF_PROPERTY = "1"]]></Condition>
                </Control>
                <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back(&amp;B)">
                    <Publish Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
                </Control>
                <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next(&amp;N)">
                    <Publish Event="DoAction" Value="SetCustomActionData">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>
                <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
                <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
                    <Text>Install IIS role and .NET Framework features.</Text>
                </Control>
                <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
                <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes">
                    <Text>{\WixUI_Font_Title}Install IIS role and .NET Framework features</Text>
                </Control>
                <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
            </Dialog>
        </UI>
    </Fragment>
</Wix>
illuminate33
  • 117
  • 1
  • 9
  • I have the same problem I cant overwrite CustomActionData but change from Value="MESSAGE=[MESSAGE]" to Value="[MESSAGE]" dont work for me. – Silny ToJa Jul 09 '20 at 09:42