views:

16

answers:

1

Hello !

On some of the controls im using locatisation (language property). Besides default (that is in english) im also using additional language (slovenian).

Other localisation is done with application resource file.

If i debug the app on emulator there is a directory (si-sl), but if i build a CAB and install the CAB on emulator there is no such directory there.

Does any one know why is that so?

A: 

I'd have to see your CAB's INF, but I have a theory. CAB files have a limitation that they can only have one instance of a source file name. If you have more than one instance, CABWIZ will not complain or give an error, it simply will use (IIRC) the last one referenced.

This means is you have source files like this:

./en/resource.dll
./es/resource.dll
./jp/resource.dll

If you build your CAB file, all instances of the resource.dll file in the target will be identical, not the separate file you think you're pushing. To get around this you have to rename them at the source side going into the CAB.

You can use the CAB to rename them coming back out to all have the same name (i.e. resource.dll), so hand-modifying the INF can still get you the desired output structure. You just have to modify the CAB build process to rename your duplicates.

ctacke
hello ctacke! When im debugging the app to emulator there in only "si-sl" folder, wich is correct since im only using "default" and "si-sl". But when installing the .CAB there is no "si-sl" folder. In your theory if i would have more than 1 folder the duplicate files would cause the problem, but in my case i only have one. It looks like the cab builder doesnt include the language folders at all... If i look at the .inf file under [SourceDisksFiles] section the directory is not listed there ...
no9
i think i found the problem. On my drive the folder /Si-SL is in ../bin folder while the .CAB file is created from the ../obj folder that does not include /Si-SL folder. Now the question is why doesnt my Install project take data from ../bin folder ? Hope i make sense...
no9
The answer *must* be in the INF file. It tells exactly where the files are going to come from.
ctacke
i understand that. But how can i set that it takes from /bin instead of /obj ?
no9
Modify the INF file. The files section are all relative paths to the INF location, so it might be something like ..\bin\myresource.dll or similar.
ctacke
funnz thing is if i do the install project by hand, that means that i dont just add primary output to my project but i hand pick all the files from my ../bin/release the file doesnt get -R property ...
no9