Не удается создать проект WIX на окнах 10
Мой проект установщика WIX был успешно построен на Windows 8.1 с Visual Studio 2015. Версия .NET - 4.5.1. Но когда я обновился до Windows 10, я не смог создать свой проект.
Я не знаю, почему проблема связана с окнами 10 или чем-то еще.
Когда я создаю свой проект, я получаю следующие ошибки:
Ошибка Задача "WixAssignCulture" не найдена. Проверьте следующее: 1.) Имя задачи в файле проекта совпадает с именем класса задачи. 2.) Класс задачи является "общедоступным" и реализует интерфейс Microsoft.Build.Framework.ITask. 3.) Задача правильно объявлена в файле проекта или в файлах *.tasks, расположенных в каталоге "C:\Program Files (x86)\MSBuild\14.0\bin". ProSafeInstaller C:\Program Files (x86)\MSBuild\Microsoft\WiX\v3.x\wix2010.targets 2340
Ошибка Задача "ReadRegistry" не может быть загружена из сборки C:\Program Files (x86)\MSBuild..\WiX Toolset v3.8\bin\WixTasks.dll. Не удалось загрузить файл или сборку "Microsoft.Build.Utilities, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a" или одну из его зависимостей. Не удается найти файл. Убедитесь, что объявление верное, что сборка и все ее зависимости доступны, и что задача содержит открытый класс, который реализует Microsoft.Build.Framework.ITask. CustomActions.
Ответы
Ответ 1
WiX имеет зависимость сборки от NETFX v3.5. Если вы включите функцию ".NET Framework 3.5" в "Программы и функции", вы сможете построить свои проекты WiX.
- На панели управления откройте "Программы и функции"
- Включение и отключение функций Windows.
- Выберите .NET Framework 3.5 и нажмите OK
- Подождите, пока функция будет установлена, а затем перестроит проект.
Здесь - соответствующий отчет об ошибках в WiX.
Ответ 2
В моих случаях - VS2013 + Win10 + Wix Toolkit 3.9, я уже установил .NET 3.5, но произошла ошибка. Затем я модифицировал .wixproj, чтобы добавить следующую переменную "WixInstallPath", чтобы указать каталог bin набора инструментов Wix:
<PropertyGroup>
...
<WixInstallPath>C:\Program Files\Wix Toolset v3.9\bin</WixInstallPath>
</PropertyGroup>
Да, это решило мою проблему. Построение выполнено.