Mon projet d’installation WIX a été construit avec succès sur Windows 8.1 avec Visual Studio 2015. La version .NET est la version 4.5.1. Mais lors de la mise à niveau vers Windows 10, je ne pouvais pas construire mon projet.
Je ne sais pas si le problème vient de Windows 10 ou de quelque chose d'autre. Lorsque je construis mon projet, les erreurs suivantes sont générées:
Erreur La tâche "WixAssignCulture" n'a pas été trouvée. Vérifiez les éléments suivants: 1.) Le nom de la tâche dans le fichier de projet est identique à celui de la classe de tâches. 2.) La classe de tâches est "publique" et implémente l'interface Microsoft.Build.Framework.ITask. 3.) La tâche est correctement déclarée dans le fichier de projet ou dans les fichiers * .tasks situés dans le répertoire "C:\Program Files (x86)\MSBuild\14.0\bin". ProSafeInstaller C:\Program Files (x86)\MSBuild\Microsoft\WiX\v3.x\wix2010.targets 2340
Erreur La tâche "ReadRegistry" n'a pas pu être chargée à partir de l'assembly C:\Program Files (x86)\MSBuild ..\WiX Toolset v3.8\bin\WixTasks.dll. Impossible de charger le fichier ou l'assembly 'Microsoft.Build.Utilities, Version = 2.0.0.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a' ou l'une de ses dépendances. Не удается найти указанный файл. Confirmez que la déclaration est correcte, que Assembly et toutes ses dépendances sont disponibles et que la tâche contient une classe publique qui implémente Microsoft.Build.Framework.ITask. CustomActions.
WiX a une dépendance build sur NETFX v3.5. Si vous activez la fonctionnalité ".NET Framework 3.5" dans "Programmes et fonctionnalités", vous devriez pouvoir créer vos projets WiX.
Ici est un rapport de bogue pertinent sur WiX.
Dans mes cas - VS2013 + Win10 + Wix Toolkit 3.9, j'ai déjà installé le .NET 3.5 mais l'erreur s'est produite. Ensuite, j'ai modifié le .wixproj pour ajouter la variable suivante "WixInstallPath" afin de pointer le répertoire bin du Wix Toolset:
<PropertyGroup>
...
<WixInstallPath>C:\Program Files\Wix Toolset v3.9\bin</WixInstallPath>
</PropertyGroup>
Oui, ça a résolu le problème. La construction a réussi.