如何快速修改生成并消费NuGet包的自定义类库,恢复一键调试流程?
解决方案
可以通过MSBuild的条件配置实现Debug模式用项目引用、Release模式用NuGet包引用的需求,不需要额外工具或手动操作。
步骤1:修改项目C的引用配置
打开C.csproj文件,删除原来单独的<PackageReference>或<ProjectReference>配置,替换为带条件判断的引用规则:
<Choose> <!-- Debug 模式下使用项目引用 --> <When Condition="'$(Configuration)' == 'Debug'"> <ItemGroup> <ProjectReference Include="..\B\B.csproj" /> </ItemGroup> </When> <!-- Release 模式下使用NuGet包引用 --> <When Condition="'$(Configuration)' == 'Release'"> <ItemGroup> <PackageReference Include="B" Version="你的B包实际版本号" /> </ItemGroup> </When> </Choose>
注意把上面的项目相对路径、包名、版本号替换为你实际项目的对应值。
步骤2(可选优化):调整项目B的打包逻辑
如果不需要Debug构建时生成NuGet包,可以修改B.csproj里的打包配置,仅在Release模式下自动生成包:
<GeneratePackageOnBuild Condition="'$(Configuration)' == 'Release'">true</GeneratePackageOnBuild>
效果验证
- 切换到Debug模式构建运行:修改B的代码后直接启动调试即可生效,和原来的项目引用体验完全一致,不需要处理NuGet包、清缓存等操作。
- 切换到Release模式构建:会自动打B的NuGet包,C使用NuGet引用B,不影响下游消费者使用B包的逻辑。
内容的提问来源于stack exchange,提问作者watkipet
相关产品推荐
相关产品推荐

