WiX:文件源混乱
只是第一次尝试安装程序,有点混乱 本守则WiX:文件源混乱,wix,Wix,只是第一次尝试安装程序,有点混乱 本守则 <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="FTSM" Name="FTSM"> <Directory Id="INSTALLFOLDER" Name="FCP" FileSource="..\FCP\bin\Debug\
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="FTSM" Name="FTSM">
<Directory Id="INSTALLFOLDER" Name="FCP" FileSource="..\FCP\bin\Debug\">
<Component Id="MainExecutable">
<File Id="FCPEXE" Name="FCP.exe" Source="FCP.exe" KeyPath="yes"/>
<Shortcut Id="startMenuFCP" Directory="ProgramMenuDir" Name="FCP" WorkingDirectory="INSTALLDIR" Icon="FCP.exe" IconIndex="0" Advertise="yes"/>
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
然后一切都完美地工作。我可以毫无错误地构建WiX项目,并生成一个按预期工作的安装程序
文件结构如下:
Main
-> FCP (Main Project)
--> bin
---> Debug
----> FCP.exe
-> Installer (WiX Project)
--> Product.wxs
显然,这对这个项目来说不是一个大问题,但是当我遇到多个组件时,一次指定文件源会更加方便。因此,这确实是一个幸运的发现,但事实证明,如果您使用WiX项目中的references文件夹,那么就可以在wxs文件中进行一些整洁的引用 我引用了我的项目,然后可以执行以下操作:
<File Id="FCPEXE" Name="FCP.exe" Source="$(var.FCP.TargetDir)\FCP.exe" KeyPath="yes"/>
来自Bob Arnson的博客: 当您使用
文件/@Name
属性且不使用文件/@Source
属性,编译器构造一个指向基于
在文件的父组件目录上加上您提供的名称
因此,当存在File/@Source
时,WiX将使用它,而不管任何目录/@FileSource
,如果不存在,则通过组合目录/@FileSource
和文件/@Name
来构建源路径
<File Id="FCPEXE" Name="FCP.exe" Source="$(var.FCP.TargetDir)\FCP.exe" KeyPath="yes"/>