C#中独立Git仓库的Foo项目与Bar类库并行开发及部署方案问询
并行开发C#项目Foo与类库Bar的调试与部署方案
调试阶段:用项目引用替代NuGet包
- 打开Foo解决方案,右键「管理NuGet程序包」,先移除已安装的Bar包
- 右键Foo项目 → 「添加」→ 「项目引用」,选择本地Bar仓库中的Bar.csproj文件(确保Bar已克隆到本地,路径正确)
- 配置完成后:
- 修改Bar代码后,只需构建Bar项目,Foo会自动使用最新的Bar编译产物,无需打包发布
- 调试Foo时可直接步进进入Bar内部逻辑,因为项目引用会包含调试符号文件(.pdb)
- 两个Git仓库独立管理代码,各自提交互不干扰
解决本地NuGet包的痛点
如果需要用本地NuGet包测试(非直接项目引用),可按以下方式优化:
- 在Bar的.csproj中配置自动生成唯一开发版本号,避免版本冲突:
每次构建都会生成不同的开发版本,无需手动删除旧包<PropertyGroup> <VersionPrefix>1.0.0</VersionPrefix> <VersionSuffix>dev.$([System.DateTime]::Now.ToString("yyyyMMddHHmm"))</VersionSuffix> </PropertyGroup> - 在Foo的NuGet包管理中勾选「允许预发布版本」,可自动获取最新的开发版Bar包
- 让Bar打包时包含调试符号,在.csproj中添加:
安装本地NuGet包时也能进行步进调试<PropertyGroup> <IncludeSymbols>true</IncludeSymbols> <SymbolPackageFormat>snupkg</SymbolPackageFormat> </PropertyGroup>
部署阶段:正式NuGet包引入
- Bar开发完成后,将正式版本推送到公司私有NuGet源或公共源
- 在Foo解决方案中移除项目引用,通过NuGet安装Bar的正式版本
- Bar中的契约类、扩展方法等共享代码会完整包含在正式包中,部署时直接依赖NuGet包即可
内容的提问来源于stack exchange,提问作者Brandon Piña
相关产品推荐
相关产品推荐

