LGHT0103 СИСТЕМА НЕ МОЖЕТ НАЙТИ ФАЙЛ WIX38
Я новичок в стек переполнения и Wix, так что, пожалуйста, потерпите меня.
Я использую Wix38 в Visual Studio2012 на ноутбуке x64. Я пытаюсь создать установщик 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 действительно находится в указанном месте. Другие три файла, кажется, добавлены правильно и находятся в том же месте, что и файл, который вызывает ошибку.
Я посмотрел на другие вопросы, связанные со стековым потоком: ошибка проекта Wix в сборке TFS, которая показывает проблему, аналогичную моей. Я не понял предоставленное решение TFS, и длина моего пути намного меньше 255 символов. Есть эта другая ссылка WiX не удалось загрузить файл, ошибка LGHT0103. Решение кажется простым, но я не мог понять, как изменить $(var.PaddockDesktop.TargetDir) в sys.SOURCEFILEDIR.
Я не могу понять, почему некоторые файлы из той же папки будут добавлены, а другие не будут добавлены, даже если они находятся в одной папке.
Обратите внимание: PaddockDesktop - это проект WPF в том же решении, что и установщик Wix. Он ориентирован на процессор x86.
Спасибо за вашу помощь заранее.
1 ответ
Я установил Wix3.9, и он правильно скомпилирован. Не уверен, в чем проблема, но это, вероятно, ошибка в Wix3.8