Visual Studio调试本地NuGet包时强制从Git拉取源码求助
环境配置
我们有供其他解决方案使用的内部NuGet包,希望在代码变更推送到Git、NuGet包推送到共享源之前,就能在其他解决方案里本地打包并调试这些包。
问题描述
之前这个工作流运行正常,但现在Visual Studio总是通过Git仓库查找源码。要在其他解决方案里本地修改并调试,每次改完都得推送到Git才能获取正确源码调试,这对日常迭代开发来说完全没法接受。我知道这是SourceLink的特性,但它根本不适合迭代开发场景。
变更情况
没法确定具体改了什么。自从上次处理NuGet包后,我确实更新过Visual Studio,NuGet可能跟着VS一起更新了,除此之外本地测试的构建和打包流程没做任何改动。
已尝试但无效的方案
- 禁用"SourceLink"
- 禁用"Just My Code"
- 从本地测试包中移除Git仓库信息:试过通过
.nuspec和.csproj配置移除,但被忽略;手动移除后VS还是能找到Git仓库 - 创建无符号信息的包
- 使用新包格式
.snupkg - 将源码直接包含在
.symbols.nupkg或.snupkg中 - 断开网络,想让VS在下载失败后提示选择其他源码位置
已尝试且部分有效的方案
- 使用反编译的DLL:能调试,但源码显示不一致,部分变量值无法查看
- 通过SourceLink从Git下载文件后,把更新后的源码粘贴进去调试:VS能识别出Git下载的源码和程序集不同步,粘贴后的源码哈希匹配,但得逐文件手动操作
- 直接引用所需程序集:需要为解决方案里的每个子项目手动操作,如果引用能传递会更方便
期望目标
- 优先希望在NuGet包中包含匹配的源码或本地源码路径,让VS自动识别,等测试完成后再提交代码和包到Git及共享NuGet源
- 找到办法让VS不使用SourceLink,或者临时配置SourceLink不从仓库拉取而是查找本地资源——目前禁用SourceLink没用,反而会被提示重新启用
最终希望不用频繁推送未测试的变更,也不用做大量手动操作,就能在依赖解决方案中测试和调试本地NuGet包。
内容的提问来源于stack exchange,提问作者Lukas Willin
相关产品推荐
相关产品推荐

