我也刚刚开始使用 WIX,我做了一个快速而肮脏的技巧来自动添加引用。这个想法是扫描要打包的项目的输出文件夹中的所有 .dll。
在 WIX 项目的预构建中,添加
call "$(ProjectDir)GenerateDependency.bat" "$(SolutionDir)" "$(ProjectDir)Dependencies.wxs"
Run Code Online (Sandbox Code Playgroud)
在您的 WIX 项目中添加一个GenerateDependency.bat 文件,其中包含
@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.
Run Code Online (Sandbox Code Playgroud)
根据需要修改“WixServiceInstallerExample\bin\Debug”。这个soulhd是你想要打包的项目的输出文件夹
注意:请注意,VisualStudio 经常会搞乱编码。最好使用 Notepad++ 编辑此文件,并确保其格式为 ANSI,而不是 UTF8。
这将生成一个 Dependency.wxs,您可以将其包含在项目中。如果您处于源代码管理之下,请将其排除在外。
每次构建都会在实际制作包之前重新扫描 .dll 并重建 Dependency.wxs。