通过Composer安装Shopware 6应用时遇名称不匹配错误如何解决?
解决Shopware 6.5中Composer安装应用后
app:refresh报错的问题 问题原因
Shopware 6.5的App系统强制要求应用目录名必须与manifest.xml中的<name>标签内容完全一致(区分大小写)。通过Composer安装时,Shopware默认安装器会将包名转为小写目录名(即swagcustomnotification),但该应用manifest.xml中的<name>是驼峰格式的SwagCustomNotification,两者不匹配导致报错。
解决方案
方案1:临时修复(仅适合测试场景)
直接修改vendor/store.shopware.com/swagcustomnotification/manifest.xml中的<name>标签,将其改为与目录名一致的小写格式:
<name>swagcustomnotification</name>
修改完成后重新执行:
bin/console app:refresh
⚠️ 注意:此修改会在下次执行composer install或composer update时被覆盖,仅用于临时验证。
方案2:持久化修复(生产环境推荐)
通过配置Composer的installer-paths,将应用安装到与manifest.xml中<name>匹配的目录下:
- 在项目根目录的
composer.json中,找到extra字段,添加installer-paths配置:
"extra": { // 保留原有配置,新增以下内容 "installer-paths": { "custom/apps/SwagCustomNotification": ["store.shopware.com/swagcustomnotification"] } }
- 执行Composer安装命令,将应用重新部署到指定目录:
composer install
- 再次执行应用刷新命令即可成功:
bin/console app:refresh
额外说明
如果是你自己开发的Shopware应用,建议将Composer包名与manifest.xml中的<name>保持完全一致(包括大小写),这样默认安装路径就会自动匹配,无需额外配置。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

