相关疑难解决方法(0)

如何调试从TeamCity部署的nuget包?

我已将我的团队使用的库放入从TeamCity部署到网络文件夹的nuget包中.我虽然无法调试这段代码!SymbolSource是我读过的一个解决方案,但我更愿意找到一些方法直接从Teamcity访问.pdb /源文件.有谁知道如何做到这一点?

编辑. 当我签'Include Symbols and Source'入Nuget Pack构建步骤时,除了网络文件夹中的.nupkg文件之外,TeamCity还会创建.Symbol.nupkg..Symbol.nupkg包含src和.pdb文件.

编辑.'Include Symbols and Source'在TeamCity上取消选中并将以下内容添加到我的nuspec文件中:

  <files>
    <file src="..\MyLibrary\bin\release\MyLibrary.dll" target="lib\net40" />
    <file src="..\MyLibrary\bin\release\MyLibrary.pdb" target="lib\net40" />
    <file src="..\MyLibrary\*.cs" target="src" />
    <file src="..\MyLibrary\**\*.cs" target="src" />
  </files>
Run Code Online (Sandbox Code Playgroud)

这在nuget包中添加了我的库的dll,pdb和源文件,并且没有生成.Symbols文件,我认为这只是符号服务器所需要的.

c# deployment teamcity symbol-server nuget

67
推荐指数
4
解决办法
4万
查看次数

使用Visual Studio 2017调试nuget包

在Visual Studio 2015和.NET Core开发中,我们可以通过从源(例如GitHub)检索源代码到本地磁盘来调试nuget包,在global.json中添加下载源代码的源路径并引用nuget包中的我们的项目.这导致对下载的源代码中的项目的引用在当前解决方案中自动显示,从而可以轻松调试(有关此功能的更多信息,请参阅本文).

有没有人知道如何使用Visual Studio 2017做同样的事情?由于global.json不见了,我找不到任何解决方案.

debugging visual-studio .net-core visual-studio-2017

15
推荐指数
1
解决办法
5720
查看次数

与Azure DevOps符号服务器的源链接

互联网上有几种关于如何使用符号源文件和Source Link在Nuget包中进行调试的记录方法,但说实话,很难理解什么对我来说是好方法。

我们有一个Azure DevOps服务器,在其上生成Nuget程序包,同时.pdb使用Index Sources & Publish Symbols构建管道中的任务将文件发布到Azure DevOps Symbol Server ,如下所述

我的项目中也有Microsoft.SourceLink.Vsts.Git对此.csproj文件的引用和此代码

<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
Run Code Online (Sandbox Code Playgroud)

我看过几篇博客文章,但是我最信任的最新资源当然是官方的Source Link Git仓库

readme.md文件说

通常不建议在.nupkg中包含PDB,因为这会增加包的大小,从而为使用您的包的项目恢复时间,无论用户是否需要通过库的源代码进行调试

我同意这一点,这就是为什么我要使用Symbol Server而不.pdb在Nuget软件包中包含文件的原因。因此,请不要将我的问题标记为与问题重复,因为接受的答案正是我不想做的。

自述文件还指出:

.snupkg符号包有一些限制

  • 它们当前不支持Windows PDB(由VC ++生成,或者对于将构建属性DebugType设置为full的托管项目)
  • 他们要求该库由较新的C#/ VB编译器构建(Visual Studio 2017 Update 9)。
  • 程序包的使用者还需要Visual Studio 2017 Update 9调试器。
  • Azure DevOps Artifacts服务不支持

所以至少我知道我不能使用它。

但是,设置并运行Source Link的正确方法是什么?

当我调试测试控制台应用程序时,它成功将.pdb文件下载到我的Symbols缓存文件夹中,但是如果我尝试使用进入来自我的Nuget包的代码F11,那将是行不通的。(但是System.String.Concat由于我的简单测试Nuget Package实际上是连接一些字符串,所以它介入了)

我试着跑步sourcelink test TestSourceLink.pdb但得到了error: url …

debug-symbols visual-studio nuget-package sourcelink azure-devops

8
推荐指数
1
解决办法
1251
查看次数

是否可以仅使用 PDB 而没有源代码来调试 DLL?

我正在尝试在 Visual Studio 中调试调用 dll 的 exe。我确保相应的 pdb 与 dll 位于同一路径中。

但我无法进入 dll 提供的功能。我收到一条消息“未找到 xyz.c”

为什么我会收到此消息?

这是否意味着我无法仅从 DLL + .PDB 进入源代码?使用 /Z7 选项构建的静态库 (.lib) 怎么样?

c++ debugging dll

5
推荐指数
1
解决办法
3981
查看次数

显示我的 nuget 的源代码

我和我的团队构建了我们自己的框架,我们在许多项目中使用。我们曾经将框架的项目包含在所有其他项目中,但后来我们决定将框架放入 nuget 服务器上的 nuget 包主机中,以便我们可以在开发过程中更轻松地进行版本控制和传播框架。

一切都工作正常,除了但有一些明显的副作用。

Visual Studio 无法直接查看 nuget 的 dll 本身,因此 VS 搜索引擎无法查找我的 nuget 中存在的函数。出于同样的原因,我认为我无法再在项目中看到框架的源代码,只显示元数据。

我知道 nuget 包不显示其自己的源代码是正常行为,但我想知道是否可以将 nuget 包设置为“可信模式”,以便 Visual Studio 能够搜索其中的函数开发人员能够直接查看源代码(当然无法编辑它)。

多谢。

.net visual-studio nuget

5
推荐指数
1
解决办法
5318
查看次数

在 Visual Studio 中使用 Pdb 文件和源代码文件进行调试

我有一个 web 项目,它从客户端代码发布到外部 dll 中的一个方法,我有这个外部 dll 的源代码文件和 pdb 文件。我想做的是使用源代码文件和 pdb 调试外部 dll。Visual Studio 并没有停止说没有为模块加载任何符号。

c# visual-studio-2010 visual-studio pdb-files visual-studio-2012

1
推荐指数
1
解决办法
1万
查看次数