包括所有依赖项

我刚刚开始使用WiX,因为我需要能够在CI服务器上自动构建MSI。反正是否自动包含项目的所有依赖项?     
已邀请:
heat.exe的“proj”扩展正在变得越来越好。热量还没有准备好以自动化方式用于生产。将初始结构放在一起是一种非常合理的方法,但是在重复运行时却没有做到正确的事情(例如,Component / @Guids不稳定,但是......)。 当在heat.exe中解决上述问题时,将其合并到您的构建过程中肯定会省去上面提到的所有麻烦。我们的列表是在核心工具集中修复了最令人震惊的错误后做得更好。     
我刚刚开始使用WIX,我做了一个快速而肮脏的技巧来自动添加引用。我们的想法是扫描要打包的项目的输出文件夹中的所有.dll。 在预构建您的WIX项目时,添加
call "$(ProjectDir)GenerateDependency.bat" "$(SolutionDir)" "$(ProjectDir)Dependencies.wxs"
在包含的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.
根据需要修改“WixServiceInstallerExample \ bin \ Debug”。此soulhd是您要打包的项目的输出文件夹 注意:请注意,VisualStudio经常会遇到编码问题。使用Notepad ++更好地编辑此文件,并确保其使用ANSI,而不是UTF8。 这将生成您可以包含在项目中的Dependencies.wxs。如果您受源代码管理,请将其排除在外。 在实际制作包之前,每个构建都将重新扫描.dll并重建Dependencies.wxs。     
从Wintellect看一下石蜡。     
根据我的经验,Wix仍然是一个非常手动的过程。您必须单独添加每个依赖项 - 我认为您的想法是在构建项目的同时构建Wix安装程序,并在代码中添加每个项目时添加它们。通过这种方式,似乎不必回头去回顾项目。尽管如此,这肯定是一个很好的建议!     
我没有在WIX中看到可以做到这一点的东西,你应该知道你的解决方案/项目所需的所有依赖项。阅读本博客,里面是引用:   保持你的来源关闭和你的   依赖性更接近(道歉   太阳Tzu)。 我发现确保MSI中没有遗漏任何内容的最佳方法是在安装干净的虚拟PC上测试安装程序。 我见过的最接近你想要的东西就是这家伙的博客。 现在,我们坚持用手工做。     
我刚刚开始使用WIX并认为WixEdit(http://wixedit.sourceforge.net/)摇滚添加多个文件/ dll,解决了我对Wix轻松获取文件的挫败感。只需保持文件有条理,然后使用导入文件夹功能。当然,它不支持每个文件只有一个组件的新3.0建议。 热量也很好,每个文件支持一个组件。我的列表中的下一步是获得一些自动化,以便这些文件自动更新为视觉工作室。     

要回复问题请先登录注册