В моем решении Visual Studio 2017 у меня есть проект установки WiX 3, который извлекает из вывода несколько других проектов (библиотеки, исполняемые файлы, ресурсы, контент).В структуре каталогов для решения, но не добавленной в решение как проект, у меня есть проект, который компилирует некоторые расширения браузера с помощью веб-пакета.Этот проект веб-пакета выводит в папку артефактов с подкаталогами для каждого браузера.Внутри каждого подкаталога находится скомпилированное расширение с номером версии, включенным в имя файла, например:
- артефакты
- Chrome
- myextension-0.1.0.0.zip
- myextension-0.1.0.1.zip
- myextension-0.1.0.2.zip
Во время компиляции, в конечном итогеЯ хочу включить файлы, соответствующие номеру версии, т.е. myextension - \ $ (var.VERSION) .zip, в пакет MSI, чтобы он мог быть помещен в папку приложения во время установки.Даже когда я жестко кодирую номер версии, то есть myextension-0.1.0.2.zip, в компонент, я получаю ошибку от light:
LGHT0001: The system cannot find the path specified. (Exception from HRESULT: 0x80070003)
Я получаю каталог с определением, подобным этому:
<?define ChromeTargetDir=$(var.SolutionDir)Extensions\artifacts\chrome\?>
И тогда мой компонент выглядит следующим образом:
<Component Id="ChromeExt"
Location="local"
Guid="GUID_HERE">
<CreateFolder/>
<File Id="ChromeExtension"
Name="myextension-0.1.0.2.zip"
Source="$(var.ChromeTargetDir)myextension-0.1.0.2.zip"
KeyPath="yes"/>
</Component>
Когда я смотрю в wixobj, созданный свечой, я вижу полный правильный путь, замененный для файла, в котором он находится на моемsystem:
<field>C:\Users\me\source\repos\mysolution\Extensions\artifacts\chrome\myextension-0.1.0.2.zip</field>
Итак, мой вопрос: как правильно включить «произвольные» файлы в мой проект WiX?