使用PAC CLI打包托管解决方案时组织设置文件夹丢失问题
PAC CLI打包托管解决方案时组织设置丢失问题排查与解决
问题现象
- 执行解包命令:
pac solution unpack -z solution.zip -f CustomCode -p managed -loc -lcid,解包后的CustomCode文件夹包含组织设置目录 - 用相同参数执行打包命令:
pac solution pack -z solution.zip -f CustomCode -p managed -loc -lcid,重新生成的solution.zip里组织设置目录直接消失
排查与解决办法
1. 检查Solution.xml的组件注册
解包时PAC CLI会完整提取所有组件,但打包时只认CustomCode\Solution.xml里明确声明的组件。
- 打开解包后的
Solution.xml,找有没有组织设置相关的<RootComponent>节点,比如:
(Type=69对应组织设置类组件,具体类型可查Dataverse组件类型说明)<RootComponent Type="69" Id="xxxx-xxxx-xxxx-xxxx" Behavior="0" /> - 如果没找到对应的节点,手动添加上,确保Id和Type跟解包出来的组织设置目录内容匹配。
2. 排除本地化参数干扰
-loc和-lcid是处理本地化内容的参数,可能过滤掉了非本地化的组织设置组件。可以先做测试:
- 去掉这两个参数执行打包:
如果打包后组织设置回来了,说明是本地化参数的问题。这种情况可以单独处理本地化资源,再合并打包。pac solution pack -z solution.zip -f CustomCode -p managed
3. 升级PAC CLI版本
不同版本的PAC CLI对托管解决方案的组织设置处理可能有bug:
- 先查当前版本:
pac version - 升级到最新稳定版:
pac install latest - 升级后重新跑一遍解包-打包流程试试。
4. 确认组件是否支持托管解决方案
有些组织级组件(比如部分系统配置)本来就不允许放进托管解决方案,PAC CLI打包时会自动剔除:
- 查Microsoft官方文档,确认你的组织设置组件能不能包含在托管解决方案里。如果是不支持的类型,得调整解决方案的组件范围。
内容的提问来源于stack exchange,提问作者karthik
相关产品推荐
相关产品推荐

