Не удается создать проект 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>

Да, это решило мою проблему. Построение выполнено.