我在使用 ProGet 和 VS2017/VS2019 重新保护源文件和符号时遇到问题。
我的情况如下
- 在我的电脑上开发测试程序集
- 在我们的 git 服务器上推送 mod 文件
- 在我们的 TeamCity (2019.1) 中获取 mod 文件
- 在发布模式下构建源代码,在 ProGet (5.2.3) 上打包并发布 AssemblyTest.symbols.nupkg
- 在 VS2017 中,我创建了一个测试控制台应用程序,通过 Package Reference 安装 AssemblyTest,我尝试在代码中的类上按 F12 以显示源代码或进入调试模式。
我已经按照指南在这里的建议配置了 VS2017
使用 -symbols 命令行参数启动 nuget pack 命令,并使用以下结构创建了 symbol.nupkg
- 包裹
- 服务
- 元数据
- ...
- 库
- 网472
- 测试程序集.dll
- 测试程序集.pdb
- 测试程序集.xml
- 网472
- 源代码
- 特性
- 装配信息.cs
- 测试类.cs
- 特性
在我的代码中在 TestClass 上按 F12,pdb 已正确下载
c:\users\me\appdata\local\temp\symbolcache\testassembly.pdb\bf5be5cd155e4400b9b18c0e1e6a05941\testassembly.pdb
并从 Visual Studio 输出窗口的下拉列表中选择 ReSharper 项目我看到
PdbNavigator: Downloader: http://srv.symbolsource.org/pdb/Public/testassembly.pdb/bf5be5cd155e4400b9b18c0e1e6a05941/testassembly.pdb -> The remote server returned an error: (500) Internal Server Error.
--OK, it's MS symbol server
PdbNavigator: Downloader: http://myproget/symbols/dev/testassembly.pdb/bf5be5cd155e4400b9b18c0e1e6a05941/testassembly.pdb -> ok, 15.5 KB
-- OK, it's our ProGet server
PdbNavigator: Searching for 'TestAssembly.TestClass' type sources in C:\Users\me\AppData\Local\Temp\SymbolCache\TestAssembly.pdb\bf5be5cd155e4400b9b18c0e1e6a05941\TestAssembly.pdb
PdbNavigator: Downloader: http://myproget/source-files/dev/TestAssembly/1.0.0.10/TestClass.cs -> The remote server returned an error: (404) Not Found.
-- Here we come :(
PdbNavigator: No sources found in debugging information for 'TestAssembly.TestClass' in assembly 'TestAssembly, Version=1.0.0.10, Culture=neutral, PublicKeyToken=null'
在我的符号缓存文件夹中有一个带有此路径的子文件夹
C:\Users\me\AppData\Local\Temp\SymbolCache\src\source-files\dev\TestAssembly\1.0.0.10
但是没有源文件。
查看 pdb 文件,我发现
SRCSRV: ini ------------------------------------------------
VERSION=2
INDEXVERSION=2
VERCTRL=http
SRCSRV: variables ------------------------------------------
SRCSRVVERCTRL=http
PGSERVER=http://myproget/source-files
PGFEED=dev
PGPKGID=TestAssembly
PGPKGVER=1.0.0.10
HTTP_EXTRACT_TARGET=%pgserver%/%pgfeed%/%pgpkgid%/%pgpkgver%/%var2%
SRCSRVTRG=%http_extract_target%
SRCSRVCMD=
SRCSRV: source files ---------------------------------------
c:\buildagent\work\b5cfc05c815c43d9\testassembly\testclass.cs*TestClass.cs
SRCSRV: end ------------------------------------------------
所以,我的问题是:如何从 ProGet 正确下载源文件?我的场景有什么问题?
谢谢!
法布里齐奥