【问题标题】:Visual Studio (Microsoft ) Symbol server with git带有 git 的 Visual Studio (Microsoft) 符号服务器
【发布时间】:2023-03-17 03:29:01
【问题描述】:

我正在尝试使用 git 设置 Microsoft 符号服务器。我四处寻找,发现了这个

https://github.com/joliver/SourceServer-GitExtensions

我遵循了说明的每一步。

当我尝试调试时,我从 Visual Studio 弹出窗口

gitcontents.bat "git@github.com:Myconpany/Myproject.git (fetch)" "C:\Users\myusername\AppData\Local\SOURCE~1\bfef70fcb1efef501a09d451517a24f049383e28\.localRepo" 04898e9268d374a9a503e4c138b27f01b7553a3e "C:\Users\myusername\AppData\Local\SOURCE~1\bfef70fcb1efef501a09d451517a24f049383e28\04898e9268d374a9a503e4c138b27f01b7553a3e\codetest.cs"

我运行命令时遇到了这个错误

fatal: bad object 04898e9268d374a9a503e4c138b27f01b7553a3e

不知道出了什么问题。那是因为我有多个分支,我是否必须指定我想在那里获取的特定分支?

这是我用来生成索引的命令

gitindex.cmd  -debug -source=<sourcedir> -symbols=<pdb file dir>

我尝试对我的 pdb (SymbolServerTests.pdb) 文件运行这些命令

Srctool.exe SymbolServerTests.pdb

[C:\data\Myrpoject\SymbolServerTests\SymbolServerTests\CodeTest.cs] cmd: gitcontents.bat "git@github.com:Myconpany/Myproject.git (fetch)" "C:\data\Myproject\bfef70fcb1efef501a09d451517a24f049383e28\.localRepo" 04898e9268d374a9a503e4c138b27f01b7553ae3 "C:\data\Myproject\bfef70fcb1efef501a0
9d451517a24f049383e28\04898e9268d374a9a503e4c138b27f01b7553a3e\codetest.cs"

SymbolServerTests.pdb: 1 source files are indexed

pdbstr -r -p:SymbolServerTests.pdb -s:srcsrv

SRCSRV: ini ------------------------------------------------
VERSION=1
INDEXVERSION=2
VERCTRL=Git
DATETIME=Thu Jan 26 10:53:05 2012
SRCSRV: variables ------------------------------------------
GIT_REPO_ID=bfef70fcb1efef501a09d451517a24f049383e28
GIT_ORIGIN_NODE=git@github.com:Mycompany/Myproject.git (fetch)
GIT_EXTRACT_TARGET=%targ%\%GIT_REPO_ID%\%var2%\%fnfile%(%var1%)
GIT_EXTRACT_CMD=gitcontents.bat "%GIT_ORIGIN_NODE%" "%targ%\%GIT_REPO_ID%\.localRepo" %var2% "%git_extract_target%"
SRCSRVTRG=%GIT_extract_target%
SRCSRVCMD=%GIT_extract_cmd%
SRCSRV: source files ---------------------------------------
c:\data\myproject\symbolservertests\symbolservertests\codetest.cs*04898e9268d374a9a503e4c138b27f01b7553a3e
SRCSRV: end ------------------------------------------------

更新:我想我得到了一些改进。我已将文件签出到此位置。

C:\Users\myusername\AppData\Local\SOURCE~1\bfef70fcb1efef501a09d451517a24f049383e28\04898e9268d374a9a503e4c138b27f01b7553a3e\codetest.cs

但我得到了

确定校验和是否与以下位置匹配: 1:C:\ Users \ MyUsername \ AppData \ Local \源〜1 \ BFEF70FCB1FEF501A09D451512CB84C0D17A8CS校验和:MD5 {60 D6 36 20 C3 AF C8 31 EB 32 50 3F 27 6B 2F D8} 校验和'不匹配。

pdb 中的校验和是在哪里计算的?

【问题讨论】:

  • 你从哪里得到双引号之间的04898e9268d374a9a503e4c138b27f01b7553a3e?这是什么意思?
  • 当我运行 gitindex.cmd 时,我认为整个命令已经生成并被推送到 pdb 文件。它应该来自 pdb 文件
  • 但它看起来像一个流浪组件。
  • @Dave gitcontents.bat 有四个参数,是第三个
  • 你能试着把它放在双引号里吗?因为它不能真正将其视为一个论点。

标签: visual-studio-2010 git symbols source-server


【解决方案1】:

我注意到在 SourceIndexer 代码中使用了 %published_artifacts_src%。这在任何地方都有记录吗?我已经开始使用它,它似乎正在工作,但现在它正在返回符号服务器的空路径。关于为什么会这样的任何线索?

【讨论】:

【解决方案2】:

Perl 脚本对我来说太神秘了,无法处理。

在这个blog post 中,我描述了使用GitLink 为Visual Studio 源服务器设置Git 支持的过程,该GitLink 使用普通的c# 来索引我的符号。它是一个位于 GitHub 上的开源库。

这个库让我设置了通过 PowerShell 检索源的方法(在 .pdb 文件中),它允许我在请求中使用查询参数,这与 Visual Studio 调试器中默认使用的工具不同。

【讨论】:

  • 鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。来自How to Answer
猜你喜欢
  • 2010-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
  • 1970-01-01
  • 2014-06-06
  • 2021-12-22
相关资源
最近更新 更多