Я только начал с WIX, и я сделал хитрый трюк, чтобы автоматически добавлять ссылки. Идея состоит в том, чтобы сканировать все .dll в выходной папке проекта, который вы хотите упаковать.
В предварительной сборке проекта WIX добавьте
call "$(ProjectDir)GenerateDependency.bat" "$(SolutionDir)" "$(ProjectDir)Dependencies.wxs"
Добавьте файл GenerateDependency.bat в ваш проект WIX, содержащий
@echo off
set SOLUTIONDIR=%1
set OUTPUTFILE=%2
echo Starting Dependency check...
echo ^<?xml version="1.0" encoding="UTF-8"?^> > %OUTPUTFILE%
echo ^<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"^> >> %OUTPUTFILE%
echo ^<Fragment^> >> %OUTPUTFILE%
echo ^<ComponentGroup Id="MesDependance" Directory="INSTALLFOLDER"^> >> %OUTPUTFILE%
for %%F in (%SOLUTIONDIR%WixServiceInstallerExample\bin\Debug\*.dll) do (
echo "-- Adding %%~nxF"
echo ^<Component Id="%%~nF"^> >> %OUTPUTFILE%
echo ^<File Id="%%~nF" Name="%%~nxF" Source="%%~dpnxF" Vital="yes" KeyPath="yes" DiskId="1"/^> >> %OUTPUTFILE%
echo ^</Component^> >> %OUTPUTFILE%
)
echo ^</ComponentGroup^> >> %OUTPUTFILE%
echo ^</Fragment^> >> %OUTPUTFILE%
echo ^</Wix^> >> %OUTPUTFILE%
echo Dependency check done.
Измените «WixServiceInstallerExample \ bin \ Debug» в соответствии с вашими потребностями. Эта папка будет выходной папкой проекта, который вы хотите упаковать
Примечание. Остерегайтесь того, что VisualStudio часто возится с кодировкой. Лучше отредактируйте этот файл с помощью Notepad ++ и убедитесь, что он в ANSI, а не в UTF8.
Это создаст Dependencies.wxs, который вы можете включить в свой проект. Если вы находитесь под контролем источников, исключите его из него.
Каждая сборка будет повторно сканировать .dll и перестраивать Dependencies.wxs перед тем, как создавать пакет.