我是新手堆栈溢出和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是与Wix安装程序在同一解决方案中的WPF项目。它的目标是x86 CPU。
感谢您的帮助。
答案 0 :(得分:0)
我安装了Wix3.9并且编译正确。不确定问题是什么,但它可能是Wix3.8中的一个错误