使用Versionize配置多项目.NET C#单体仓库版本控制遇版本重复报错
解决Versionize在.NET Core单体仓库多项目版本冲突问题
核心问题原因
你遇到的"Version 1.0.1 already exists"错误,是因为Versionize默认会在仓库全局层面维护版本状态。处理第一个项目时,全局版本被更新到1.0.1,后续处理其他项目时,工具会尝试复用这个全局版本号,导致冲突。要解决这个问题,需要在根目录的.versionize配置文件中显式声明每个项目的独立配置,让工具单独追踪每个项目的版本。
根目录共用配置文件示例
在仓库根目录创建或修改.versionize文件,添加projects节点,为每个项目指定独立的路径、变更日志位置和项目文件:
{ "projects": { "currProjName1": { "path": "./currProjName1", "changelog": "./currProjName1/CHANGELOG.md", "packageFile": "./currProjName1/currProjName1.csproj" }, "currProjName2": { "path": "./currProjName2", "changelog": "./currProjName2/CHANGELOG.md", "packageFile": "./currProjName2/currProjName2.csproj" } // 继续添加其他项目配置 } }
配置项说明
path: 项目相对于仓库根目录的路径changelog: 该项目专属的变更日志文件路径packageFile: 对应.NET Core项目的.csproj文件路径,Versionize会在这里更新版本号
正确的命令执行方式
无需使用--configDir参数,直接通过--proj-name指定配置文件中定义的项目名称,分别执行版本更新:
处理第一个项目:
versionize --proj-name currProjName1
处理第二个项目:
versionize --proj-name currProjName2
这样每个项目都会有独立的版本追踪状态,不会再出现版本号重复的冲突问题。
内容的提问来源于stack exchange,提问作者Kseniya Yudina
相关产品推荐
相关产品推荐

