WiX 3.11.2中Light.exe加-v无额外输出,如何启用verbose日志?
WiX 3.11.2中Light.exe verbose日志不生效及LGHT0001文件占用问题解决
一、启用Light.exe verbose日志的正确方式
你当前添加-v参数后无输出变化,核心原因是通过MSBuild(.wixproj)构建时,MSBuild未将Light的详细输出传递到控制台,或参数配置逻辑有误,可通过以下方法解决:
修改Wix项目配置文件
直接编辑你的.wixproj文件,在<PropertyGroup>节点中添加Light的verbose配置:<PropertyGroup> <!-- 启用Light详细输出 --> <LightVerbose>True</LightVerbose> <!-- 开启MSBuild详细日志,避免输出被拦截 --> <VerboseOutput>True</VerboseOutput> </PropertyGroup>通过MSBuild命令行强制开启详细日志
构建时同时指定MSBuild的日志级别和Light的verbose参数:msbuild XFS3Simulators.wixproj /t:Rebuild /p:Configuration=Release /v:d /p:LightVerbose=true其中
/v:d(或/verbosity:detailed)会让MSBuild输出完整构建流程,包括Light的verbose日志。直接调用Light.exe测试
跳过MSBuild,直接在命令行运行Light.exe并将-v放在参数列表最前端,验证是否有详细输出:e:\3201\s\WiX\Installers\msi\packages\WiX.3.11.2\tools\Light.exe -v -out e:\3201\s\Binaries\x86\Release\XFS3Simulators.msi -pdbout e:\3201\s\Binaries\x86\Release\XFS3Simulators.wixpdb -cultures:null -contentsfile obj\Release\XFS3Simulators.wixproj.BindContentsFileListnull.txt -outputsfile obj\Release\XFS3Simulators.wixproj.BindOutputsFileListnull.txt -builtoutputsfile obj\Release\XFS3Simulators.wixproj.BindBuiltOutputsFileListnull.txt -wixprojectfile e:\3201\s\WiX\Installers\msi\XFS3Simulators\XFS3Simulators.wixproj obj\Release\Product.wixobj e:\3201\s\Binaries\x86\Release\XFS3SimulatorsBinary.wixlib
二、LGHT0001文件占用错误处理
针对“文件被其他进程占用”的错误,可按以下步骤排查:
- 关闭占用进程:检查输出目录(
e:\3201\s\Binaries\x86\Release\)是否被文件资源管理器打开,或目标MSI文件是否被杀毒软件、安装程序、调试工具等占用,关闭相关进程后重试。 - 清理构建缓存:删除项目的
obj和Bin目录下的所有文件,重新构建,避免残留文件被占用。 - 排查残留进程:使用进程工具(如Process Explorer)搜索
XFS3Simulators.msi,找到占用该文件的进程并结束。
翻译后的示例输出:
2023-10-16T15:29:31.4812386Z e:\3201\s\WiX\Installers\msi\packages\WiX.3.11.2\build\..\tools\Light.exe -out e:\3201\s\Binaries\x86\Release\XFS3Simulators.msi -pdbout e:\3201\s\Binaries\x86\Release\XFS3Simulators.wixpdb -v -cultures:null -contentsfile obj\Release\XFS3Simulators.wixproj.BindContentsFileListnull.txt -outputsfile obj\Release\XFS3Simulators.wixproj.BindOutputsFileListnull.txt -builtoutputsfile obj\Release\XFS3Simulators.wixproj.BindBuiltOutputsFileListnull.txt -wixprojectfile e:\3201\s\WiX\Installers\msi\XFS3Simulators\XFS3Simulators.wixproj -v obj\Release\Product.wixobj e:\3201\s\Binaries\x86\Release\XFS3SimulatorsBinary.wixlib 2023-10-16T15:29:37.7312537Z ##[错误]light.exe(0,0): 错误 LGHT0001: 无法访问文件,因为它正在被另一个进程使用。(HRESULT 异常: 0x80070020) 2023-10-16T15:29:37.7312537Z light.exe : 错误 LGHT0001: 无法访问文件,因为它正在被另一个进程使用。(HRESULT 异常: 0x80070020) [e:\3201\s\WiX\Installers\msi\XFS3Simulators\XFS3Simulators.wixproj] 2023-10-16T15:29:37.9031320Z 项目 \"e:\3201\s\WiX\Installers\msi\XFS3Simulators\XFS3Simulators.wixproj\" (默认目标) 的生成已完成 -- 失败。
内容的提问来源于stack exchange,提问作者MPS
相关产品推荐
相关产品推荐

