WiX fichiers semblent toujours inclure cette ligne:
<Directory Id="TARGETDIR" Name="SourceDir">
Qu'est-ce que "SourceDir"? À quoi sert-il? C'est pas un vrai nom de répertoire. Est-il une sorte de valeur magique?
WiX fichiers semblent toujours inclure cette ligne:
<Directory Id="TARGETDIR" Name="SourceDir">
Qu'est-ce que "SourceDir"? À quoi sert-il? C'est pas un vrai nom de répertoire. Est-il une sorte de valeur magique?
De: http://robmensching.com/blog/posts/2010/1/26/StackOverflow-what-does-NameSourceDir-refer-to
Honnêtement, c'est quelque chose que nous devrions avoir caché par le développeur, mais n'a pas. Désolé. La vérité de la question est que le programme d'installation de Windows s'attend à l'arborescence du Répertoire pour toujours être enraciné dans un Répertoire en ligne où la clé primaire (Répertoire/@Id) est "TARGETDIR" et le DefaultDir colonne (Répertoire/@Nom) est "SourceDir".
Pendant l'installation, TARGETDIR par défaut est le plus grand disque sur la machine. SourceDir sera fixé à l'emplacement où le fichier MSI est en cours d'exécution. Maintenant, SourceDir est difficile après l'installation initiale, car il ne sera pas définie, à moins que le ResolveSource action est appelée. Cependant, vous ne voulez pas appeler explicitement la ResourceSource l'action parce qu'il est susceptible de vous demander de fournir les données source d'origine (aka: insérez le CD, s'il vous plaît).
Ce que nous avons fait dans le WiX toolset est de supprimer la nécessité de préciser la TARGETDIR/SourceDir paire et de dire "n'Importe quel Répertoire élément qui n'a pas de parent sera automatiquement apparenté à TARGETDIR parce que c'est ce que le MSI SDK dit de faire." Au lieu de cela, vous devez le faire vous-même... et de quelques devs me demande ce que tout cela signifie.
À partir de la wix.chm documentation, rubrique "Comment faire Pour Ajouter un Fichier À Votre Installateur":
L'élément avec l'id TARGETDIR est requis par le programme d'installation de Windows et est la racine de tout le répertoire structures pour votre installation
Selon la documentation MSDN TARGETDIR est
la racine du répertoire de destination pour l' installation
Aussi, selon MSDN, SourceDir est
le répertoire racine qui contient les source cabinet du fichier ou le fichier source l'arborescence de l'installation du package
Ainsi, le SourceDir bien des points à un répertoire réel: celui où votre fichier MSI se trouve. Vous pouvez le voir dans le journal d'installation lors de l'installation avec msiexec /lvx* installer.log installer.msi
.
Cependant, pour quelque raison SourceDir est complètement ignorée lors de la résolution du TARGETDIR. Le TARGETDIR doit être définie de manière explicite (par exemple, sur la ligne de commande), ou alors il décide de ROOTDRIVE. Si ROOTDRIVE n'est pas explicitement définie, alors il est la racine du lecteur avec le plus d'espace libre.
Un test rapide montre que l'installation d'un composant à TARGETDIR, en effet, met les fichiers à la racine de mon lecteur D:\, au lieu de le dossier où le fichier MSI est assis.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.