Archive: Poll to reinstate MUI_PRODUCT and MUI_VERSION


Poll to reinstate MUI_PRODUCT and MUI_VERSION
Why did you remove this feature?

Poll to reinstate MUI_PRODUCT and MUI_VERSION


"Name" is not a new feature, it's what NSIS always used.

The Modern UI introduced these defines because it was impossible to use the content of Name in other values. With the new language features, this has been solved and therefore the Modern UI can also use Name.

The advantage is that there is less difference between Modern / Classic UI and there is also no fixed format (product, version) anymore.

Why would you want to keep these old defines?


True, but in a script you could use one or the other or both, with "Name" you can only set the product as "My Product v1.0"

But it is simple to get around just use

!define PRODUCT "My Product"
!define VERSION "v1.0"

Just removing the MUI_ from all instances of ${MUI_PRODUCT} and replace it with ${PRODUCT} and do the same for $(MUI_VERSION} rename to ${VERSION}

I just found the old way easier as you could have all instances of MY Product named as ${MUI_PRODUCT}.exe and so on

So with "Name" what do you replace ${MUI_PRODUCT} with $(^Name)


If you want to change the version number only in one place, add your own define (only one line of code).

$(^Name) is being replaced on run-time, a define is being replaced on compile-time.


For me it's the same. Just use the "find and replace" feature from your favorite NSIS editor :)


Originally posted by Joost Verburg
If you want to change the version number only in one place, add your own define (only one line of code).

$(^Name) is being replaced on run-time, a define is being replaced on compile-time.
and what does this mean for a dummy like mine?

where are thos entries being used? Some scripts use ${MUI_PRODUCT} and ${MUI_VERSION} - those scripts are not functional any longer - some of them only uses ${MUI_PRODUCT}.

Sometimes those keys are used to write registrystrings eg.
HKCU "software\${MUI_PRODUCT}\${MUI_VERSION}"

these possibilities might be gone now.

Use your own define.

!define PRODUCT "bla"

${PRODUCT} will be replaced by bla.


can i use

!define VERSION "bla"
${VERSION}

too?

In that case the older syntax can be dropped.


You can use any name you want, including VERSION, PRODUCT and even MUI_MYDEFINE.