Je reçois des erreurs de light.exe
qui indiquent qu'il rencontre des problèmes pour localiser l'un des fichiers dans mon projet d'installation. Il s'avère sur le PC en question que le chemin relatif que j'utilise dépasse 260 caractères. À l'heure actuelle Wix est mis en place quelque chose comme ceci:Le chemin relatif de WIX finit par être trop long
<File Id='FoobarEXE' Name='FoobarAppl10.exe' DiskId='1' Source='..\..\Path\To\Built\Executable\FoobarAppl10.exe' KeyPath='yes'/>
Le problème que j'ai est que le projet Wix installation se trouve dans un dossier tel que D:\Path\To\ProjectFolder\WixInstaller\WixInstallerProject
et \Path\To\Built\Executable\FoobarAppl10.exe
existe dans le dossier D:\Path\To\ProjectFolder
. Lorsque light.exe
tente de résoudre le chemin, le résultat net est D:\Path\To\ProjectFolder\WixInstaller\WixInstallerProject\..\..\Path\To\Built\Executable\FoobarAppl10.exe
, ce qui, dans mon cas particulier, dépasse 260 caractères. Le chemin absolu correct pour l'exe serait D:\Path\To\ProjectFolder\Path\To\Built\Executable\FoobarAppl10.exe
ce qui dans mon cas serait inférieur à 260 caractères, mais en raison de l'inclusion inutile de la partie WixInstaller\WixInstallerProject\..\..\
du chemin, il dépasse alors cette limite.
Est-il possible que je puisse obtenir light.exe
pour résoudre ..\..\Path\To\Built\Executable\FoobarAppl10.exe
comme D:\Path\To\ProjectFolder\Path\To\Built\Executable\FoobarAppl10.exe
au lieu de D:\Path\To\ProjectFolder\WixInstaller\WixInstallerProject\..\..\Path\To\Built\Executable\FoobarAppl10.exe
? J'apprécie que ce n'est pas une limitation dans Wix en soi, plus d'une limitation sous-jacente dans la façon dont les API Wix sont conçues pour utiliser sont construites, mais j'ai besoin d'une solution au problème qui me permettra de résoudre ce problème mon fichier .wxs
. Oui raccourcir le chemin fonctionnerait mais le problème n'est pas vraiment que le chemin est trop long (parce qu'il ne l'est pas), c'est que la syntaxe pour les chemins relatifs ajoute la section centrale inutile.
Je fais quelque chose de semblable depuis longtemps, mais avec des variables pré-processeur WiX comme 'Source = '$ (var.FooBarApp) \ FoobarAppl10.exe''. Y a-t-il une différence significative entre les deux, ou est-ce que cela a juste à voir avec l'utilisation de msbuild ou pas? –
Rien à voir avec MSBuild. C'est juste au moment où les variables sont résolues et vous trouverez les chemins de liaison sont beaucoup plus puissants, en particulier dans les scénarios avancés comme les correctifs ou les versions distribuées. –
Merci - Je vais regarder dans cela, il semble que cela va résoudre mon problème. À votre santé! –