DevOps CI中使用AdvancedInstaller出现文件同步及参数识别错误咨询
问题原因及解决方案
第一个路径识别错误问题
你日志里echo输出的publishPath为D:\a\1\a\agentPublish,但报错里识别的路径缺失了\1\段,原因有两个:
- 你的Advanced Installer项目里残留了旧的APPDIR同步配置,旧路径干扰了新配置的识别
- 执行
-existingfiles delete时,部分文件被其他组件引用无法删除,进一步导致旧路径配置没有被完全覆盖
第二个参数未知报错问题
你当前安装的Advanced Installer 18.3版本过旧,你使用的-name、-exclude_subfolders、-runasadmin等参数都是20.0及以上版本才支持的命令行参数;同时PowerShell会默认把-开头的内容识别为自身的参数,没有正确传递给AdvancedInstaller.com。
具体修复步骤
- 优先升级Advanced Installer版本到20.0以上,如果你必须使用18.3版本,所有调用
AdvancedInstaller.com的命令前都添加--%停止PowerShell参数解析符,示例:
AdvancedInstaller.com /edit $(agentProject) /DelShortcut --% -name "Agent" -dir DesktopFolder
- 执行
/NewSync前先重置旧的APPDIR同步配置,清除残留:
AdvancedInstaller.com /edit $(agentProject) --% /ResetSync APPDIR
- PowerShell中传递路径变量时,用单引号包裹双引号,避免路径被提前解析:
AdvancedInstaller.com /edit $(agentProject) --% /NewSync APPDIR '"$(publishPath)"' -exclude_subfolders -exclude_patterns *.pdb
- 确认
$(publishPath)变量是跨任务生效的全局变量,不是仅在之前的发布任务内部生效的局部变量。
内容的提问来源于stack exchange,提问作者Jonesie
相关产品推荐
相关产品推荐

