Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Adding new strings to a localized MSI with MSP

3 views
Skip to first unread message

Schmitty

unread,
May 7, 2008, 2:03:32 AM5/7/08
to
Hey All,

Searching through the archives I found this old post:
http://groups.google.com/group/microsoft.public.platformsdk.msi/browse_thread/thread/5d4a71a5b81d8c9b/b93c4c0e4e6bc8f0

That post is from way back in 2003, so I was hoping that there's a
better answer to the question now.

Here's what I want to do: I have a MSI that gets localized at install
time by applying a MST. The MSI was shipped and we're using MSPs to
upgrade the product. In my MSP I need to add a new dialog and in the
new dialog I need to add a couple of new strings. Obviously these
strings need to be localized, but I can't figure out a good way of
adding them to the existing MST because as far as I know, there's no
good way of modifying the MST you installed with.

So, how can I get the new strings added? I don't want to ship a
separate MSP for each language with the appropriate strings.

The only thing I've been able to come up with is to dig through the
registry, figure out where the cached MST lives and upgrade it in my
setup.exe. Clearly, this is something I want to avoid.

Any ideas?

Adrian Accinelli

unread,
May 7, 2008, 4:06:49 PM5/7/08
to
"Schmitty" <schm...@gmail.com> wrote in message
news:f53cd59e-398e-4710...@w34g2000prm.googlegroups.com...

Unfortunately the situation today is the same as back in 2003. I suppose
with the forthcoming MSI 4.5 you could abandon language transforms and go
with embedded UI where the UI can read strings from wherever you want to
store them (own UI tables, embedded localized resource only dlls, etc) -
that would allow patches to make changes appropriately but this wouldn't
help for patches right now.

For your case specifically you cannot target any rows that are INSERTed by
your language transform. So whether or not this dialog change is possible
depends entirely on exactly what changes you need to make.

If you are adding new controls to represent the new dialog requirements then
it should be straightforward -- in each of your UpgradedMSI files that your
PCP contains make sure that the you insert new Control table rows. In
addition you can use the combination of properties for default text and type
51 custom actions to populate those properties in order to ensure the final
strings used are in the correct language.

If you have to change a row that gets INSERTed then you are out of luck for
a simplified operation. Instead you have to look at eliminating the
original dialog from your UI Sequence (change conditions for all
ControlEvent rows that reference the old dialog) and replacing it with an
entirely new dialog (which would have to use same combination of
properties/custom actions to make sure final look is correct.

Now if your ControlEvents are also INSERTed then you are completely out of
luck - an MSP simply will not be able to achieve this. So you are stuck
having boostrapper perform an uninstall/install or having to ship a major
upgrade instead.

Sincerely,
Adrian Accinelli


0 new messages