【发布时间】:2014-11-04 21:12:42
【问题描述】:
我是堆栈溢出和 Wix 的新手,所以请多多包涵。
我在 x64 笔记本电脑上的 Visual Studio2012 中使用 Wix38。我正在尝试创建 x86 安装程序,但我尝试添加的某些文件无法使用 LGHT0103 系统构建时找不到文件错误。
我添加文件的Wix代码如下:
<Fragment>
<ComponentGroup Id="DesktopComponents" Directory="INSTALLFOLDER">
<Component Id="CMPExecutable" Guid="{E84BF717-9B73-439F-B8D2-1E2C2E5FA204}">
<File Id="FILEexecutable" KeyPath="yes" Source="$(var.PaddockDesktop.TargetDir)PaddockDesktop.exe" />
</Component>
<Component Id="CMPEnityframework" Guid="{596A608E-53AA-4131-92F3-5B1EA065AEC9}">
<File Id="FILEentityframework" KeyPath="yes" Source="$(var.PaddockDesktop.TargetDir)EntityFramework.dll" />
</Component>
<Component Id="CMPMahapps" Guid="{2434F3AF-00C0-4363-9DCD-D631656D275D}">
<File Id="FILEMahapps" KeyPath="yes" Source="$(var.PaddockDesktop.TargetDir)MahApps.Metro.dll" />
</Component>
<Component Id="CMPinteractivity" Guid="{1179CC18-8BD6-42D0-AE4D-35FB6B4F5750}">
<File Id="FILEinteractivity" KeyPath="yes" Source="$(var.PaddockDesktop.TargetDir)System.Windows.Interactivity.dll" />
</Component>
</ComponentGroup>
</Fragment>
错误在构建输出中显示为:
C:\Program Files (x86)\WiX Toolset v3.8\bin\candle.exe -d"DevEnvDir=C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\\" -dSolutionDir=G:\aa\ -dSolutionExt=.sln -dSolutionFileName=PaddockDesktop.sln -dSolutionName=PaddockDesktop -dSolutionPath=G:\aa\PaddockDesktop.sln -dConfiguration=Release -dOutDir=bin\Release\ -dPlatform=x86 -dProjectDir=G:\aa\PaddockSetup\ -dProjectExt=.wixproj -dProjectFileName=PaddockSetup.wixproj -dProjectName=PaddockSetup -dProjectPath=G:\aa\PaddockSetup\PaddockSetup.wixproj -dTargetDir=G:\aa\PaddockSetup\bin\Release\ -dTargetExt=.msi -dTargetFileName=PaddockSetup.msi -dTargetName=PaddockSetup -dTargetPath=G:\aa\PaddockSetup\bin\Release\PaddockSetup.msi -dPaddockDesktopService.Configuration=Release -d"PaddockDesktopService.FullConfiguration=Release|x86" -dPaddockDesktopService.Platform=x86 -dPaddockDesktopService.ProjectDir=G:\aa\PaddockDesktopService\ -dPaddockDesktopService.ProjectExt=.csproj -dPaddockDesktopService.ProjectFileName=PaddockDesktopService.csproj -dPaddockDesktopService.ProjectName=PaddockDesktopService -dPaddockDesktopService.ProjectPath=G:\aa\PaddockDesktopService\PaddockDesktopService.csproj -dPaddockDesktopService.TargetDir=G:\aa\PaddockDesktopService\bin\x86\Release\ -dPaddockDesktopService.TargetExt=.exe -dPaddockDesktopService.TargetFileName=PaddockDesktopService.exe -dPaddockDesktopService.TargetName=PaddockDesktopService -dPaddockDesktopService.TargetPath=G:\aa\PaddockDesktopService\bin\x86\Release\PaddockDesktopService.exe -dPaddockDesktop.Configuration=Release -d"PaddockDesktop.FullConfiguration=Release|x86" -dPaddockDesktop.Platform=x86 -dPaddockDesktop.ProjectDir=G:\aa\PaddockDesktop\ -dPaddockDesktop.ProjectExt=.csproj -dPaddockDesktop.ProjectFileName=PaddockDesktop.csproj -dPaddockDesktop.ProjectName=PaddockDesktop -dPaddockDesktop.ProjectPath=G:\aa\PaddockDesktop\PaddockDesktop.csproj -dPaddockDesktop.TargetDir=G:\aa\PaddockDesktop\bin\x86\Release\ -dPaddockDesktop.TargetExt=.exe -dPaddockDesktop.TargetFileName=PaddockDesktop.exe -dPaddockDesktop.TargetName=PaddockDesktop -dPaddockDesktop.TargetPath=G:\aa\PaddockDesktop\bin\x86\Release\PaddockDesktop.exe -out obj\Release\ -arch x86 Product.wxs
C:\Program Files (x86)\WiX Toolset v3.8\bin\Light.exe -out G:\aa\PaddockSetup\bin\Release\PaddockSetup.msi -pdbout G:\aa\PaddockSetup\bin\Release\PaddockSetup.wixpdb -cultures:null -contentsfile obj\Release\PaddockSetup.wixproj.BindContentsFileListnull.txt -outputsfile obj\Release\PaddockSetup.wixproj.BindOutputsFileListnull.txt -builtoutputsfile obj\Release\PaddockSetup.wixproj.BindBuiltOutputsFileListnull.txt -wixprojectfile G:\aa\PaddockSetup\PaddockSetup.wixproj obj\Release\Product.wixobj
G:\aa\PaddockSetup\Product.wxs(41,0): error LGHT0103: The system cannot find the file 'G:\aa\PaddockDesktop\bin\x86\Release\MahApps.Metro.dll'.
文件 MahApps.Metro.dll 确实位于所引用的位置。其他三个文件似乎已正确添加,并且与导致错误的文件位于同一位置。
我查看了其他 stackoverflow 问题: Wix project error in TFS build 显示了与我类似的问题。我不理解所提供的 TFS 解决方案,而且我的路径长度远远少于 255 个字符。 还有这个其他链接WiX unable to load file, error LGHT0103。解决方案似乎很简单,但我不知道如何将 $(var.PaddockDesktop.TargetDir) 更改为 sys.SOURCEFILEDIR。
我不明白为什么会添加同一文件夹中的某些文件,而即使它们位于同一文件夹中,也不会添加其他文件。
请注意:PaddockDesktop 是一个 WPF 项目,其解决方案与 Wix 安装程序相同。它的目标是 x86 CPU。
提前感谢您的帮助。
【问题讨论】:
标签: visual-studio-2012 wix wix3.8