2010-09-14 23 views
0

Sur certains contrôles, j'utilise locatisation (propriété du langage). En plus de défaut (c'est en anglais) Im également en utilisant une langue supplémentaire (slovène).CF - Répertoire de langue manquant après l'installation de CAB sur le périphérique

Une autre localisation est effectuée avec le fichier de ressources de l'application.

Si je débogue l'application sur l'émulateur il y a un répertoire (si-sl), mais si je construis un CAB et installe le CAB sur l'émulateur il n'y a pas de tel répertoire là.

Est-ce que quelqu'un sait pourquoi?

Répondre

1

Je devrais voir INF de votre CAB, mais j'ai une théorie. Fichiers CAB ont une limitation qu'ils peuvent seulement avoir une instance d'un source nom de fichier. Si vous avez plus d'une instance, CABWIZ ne se plaindra pas ou ne donnera pas d'erreur, il utilisera simplement (IIRC) le dernier référencé.

Cela signifie est que vous avez des fichiers source comme ceci:

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

Si vous construisez votre fichier CAB, toutes les instances du fichier resource.dll dans la cible sera identique, et non le fichier séparé vous pensez vous poussez. Pour contourner ce problème, vous devez les renommer du côté de la source pour entrer dans le CAB. Utilisez pouvez utiliser le CAB pour les renommer en revenant à tous ont le même nom (c'est-à-dire resource.dll), donc modifier manuellement l'INF peut toujours vous obtenir la structure de sortie souhaitée. Il vous suffit de modifier le processus de construction CAB pour renommer vos doublons.

+0

bonjour ctacke! Lorsque je suis en train de déboguer l'application vers l'émulateur dans le seul dossier "si-sl", ce qui est correct puisque je n'utilise que "default" et "si-sl". Mais lors de l'installation du fichier .CAB, il n'y a pas de dossier "si-sl". Dans votre théorie, si j'avais plus d'un dossier les fichiers en double causeraient le problème, mais dans mon cas, je n'en ai qu'un. Il semble que le constructeur de cabine n'inclut pas du tout les dossiers de langue ... Si je regarde le dossier .inf sous la section de [SourceDisksFiles] le répertoire n'est pas énuméré là ... – no9

+0

je pense que j'ai trouvé le problème. Sur mon disque le dossier/Si-SL est dans le dossier ../bin tandis que le fichier .CAB est créé à partir du dossier ../obj qui n'inclut pas le dossier/Si-SL. Maintenant, la question est pourquoi mon projet d'installation ne prend-il pas les données du dossier ../bin? J'espère que j'ai du sens ... – no9

+0

La réponse * doit * être dans le fichier INF. Il indique exactement d'où les fichiers proviendront. – ctacke