- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
互联网上有几种关于如何使用符号源文件和源链接在 Nuget 包中进行调试的记录方法,但老实说,我很难理解什么是好方法。
我们有一个 Azure DevOps 服务器,我们在其上生成 Nuget 包,同时发布 .pdb
使用 Index Sources & Publish Symbols
将文件发送到 Azure DevOps 符号服务器我们构建管道中的任务为described here
我的项目'也有对 Microsoft.SourceLink.Vsts.Git
的引用和 .csproj
中的这段代码文件
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
readme.md
文件说
Including PDBs in the .nupkg is generally no longer recommended as it increases the size of the package and thus restore time for projects that consume your package, regardless of whether the user needs to debug through the source code of your library or not
.pdb
。 Nuget 包中的文件。因此,请不要将我的问题标记为
this one 的重复项。 ,因为接受的答案正是我不想做的。
.snupkg symbol packages have some limitations:
- They do not currently support Windows PDBs (generated by VC++, or for managed projects that set build property DebugType to full)
- They require the library to be built by newer C#/VB compiler (Visual Studio 2017 Update 9).
- The consumer of the package also needs Visual Studio 2017 Update 9 debugger.
- Not supported by Azure DevOps Artifacts service.
.pdb
文件到我的符号缓存文件夹,但如果我尝试使用
F11
单步执行来自我的 Nuget 包的代码,它只是不起作用。 (但是它会进入
System.String.Concat
因为我的简单测试 Nuget 包实际上是在连接一些字符串)
sourcelink test TestSourceLink.pdb
但我得到一个
error: url hash does not match
.我读了
here那
sourcelink test
是一个遗留的东西,不支持对像我们这样的私有(private)存储库进行身份验证。
sourcelink print-json TestSourceLink.pdb
给出的 URL我可以看到最新的源代码。但现在的问题是,为什么 Visual Studio 无法下载源代码?我在 VS 中已通过此 Azure DevOps 服务器的身份验证,因为我能够安装来自此服务器的 Nuget 包。
最佳答案
好吧,我应该阅读并关注 this answer在发布我的问题之前,因为这是拼图的缺失部分。
我需要遵循 Eric's blog post 的步骤 5 和 6但我实际上不需要修改我的pack
命令,因为我不包括 .pdb
Nuget 包中的文件。
[编辑 2]:
注意:到目前为止,我只能在使用 生成 Nuget 包时才能使用它。调试构建配置 .如果您找到了让源链接与 Nuget 包中的发布 DLL 一起工作的方法,请回答 my other question .谢谢
[编辑]:因为我为我的公司写了一份文档,所以这里是:
概括:
这需要两件事:
.pdb
),这是调试器使用的映射文件 Properties
然后转到Build -> Advanced
并更改 Debugging Information
来自 Portable
(默认值)到 Full
.csproj
文件并在第一个 PropertyGroup
中包含以下代码元素: <PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
BuildConfiguration
的管道变量(如果它不存在)并将值设置为 Debug
.NET Core Build
中的参数任务:--configuration $(BuildConfiguration)
.NET Core Pack
任务,在 Configuration to Package
中使用此变量字段:$(BuildConfiguration)
Index Sources & Publish Symbols
Artifact name
字段,BuildConfiguration
变量也必须使用:Symbols_$(BuildConfiguration)
.NET Core Push
将 Nuget 包推送到 Azure DevOps Nuget Feed Tools -> Options -> Debugging -> Symbols
点击New Azure DevOps Symbol Server Location...
按钮并对服务器进行身份验证C:\Symbols\
.这是您所有的.pdb
文件将被存储 Tools -> Options -> Debugging -> Symbols
点击Load only specified modules
.您可以在此处指定要加载的 DLL 的符号文件。Load all modules, unless excluded
,当您在 Debug模式下运行程序时,Visual Studio 将需要很长时间才能加载所有内容。Debug -> Windows -> Modules
.从这里您可以查看完整列表,选择多个然后右键单击Copy Value -> Copy Name
Tools -> Options -> Debugging -> General
Enable Just My Code
Enable source server support
Enable Source Link Support
F11
进入它,Visual Studio 会询问你是否同意从 Azure DevOps 存储库下载源代码
关于visual-studio - 与 Azure DevOps 符号服务器的源链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54980381/
语境 我正在将一个旧的 php 电子商务网站变成一个用 gatsby.js 构建的静态网站。 我将所有产品元数据放入单独的 .json 文件(每个产品一个),并且我能够使用 json 和文件转换器插件
我曾经能够使用三指向上滚动在源/标题之间切换。自从升级到 Lion 后,我只进行常规滚动。有没有办法恢复该功能? Aka,当我像以前那样向上/向下滚动时,它不会跳到对应的位置。 更新 Apple 在
我有一个包含复选框输入的克隆元素。当克隆的元素未被选中时,我需要也取消选中源元素。有没有办法在 jQuery 中做到这一点?或者我是否以错误的方式处理这个问题(即使用clone())?我应该提到我的问
我有一个类,其中有两个 JSpinner 对象,x 和 y。我有一个更改监听器,它已添加到两者中。有人可以告诉我如何实现我的更改监听器,以便监听器可以区分两个对象之间的区别。例如伪代码: if(sou
我正在编写涉及 for 循环的代码,该循环在每个索引处进行计算。 这些计算中的最小值存储在一个变量中,我在程序末尾使用 MPI_Allreduce 来确定所有进程的全局最小值。 但是,我需要一种方法来
我需要在一个 Android 项目中创建一个 map View ,我从服务器获取自定义 map 图 block PNG。有人知道实现此类功能的简单许可 API 吗? 最佳答案 我使用了 OsmDroi
因为我必须创建一个可以更改图像 (src/background-url) 的函数。我想知道如何识别标签以及它是使用 src 还是 url 来访问图像。 让我们说 早些时候我写了一个可以
当我使用源 map 浏览器 https://github.com/danvk/source-map-explorer要检查捆绑包中的内容,我得到以下输出: D:\projects\angular\mT
我正在为客户将 Windev 应用程序移植到 Objective-C。出于显而易见的原因,使用以前的源代码会更简单。 不幸的是,它是加密的,我需要 EDI 才能看到它;完整版的 Windev 太贵了(
我有一个简单的视频播放器,它使用 WPF MediaElement 播放一系列视频。这些视频一起形成一个围绕静止图像移动的连续电影。在每个视频结束时,运动会卡住在当前播放视频的最后一帧。当我按下一个按
我需要更改 openlayer 的图层源(使用 open weather api)。目前我正在使用以下代码但没有成功。 let layer = this.map.getLayers().getArra
我正在尝试在 /dev/random 的机器上运行代码不会很快填满,我正在尝试使用的 Java 程序因缺少随机数而挂起。/dev/urandom产生“不太好”的随机数,但不会阻塞,对于这种情况,我宁愿
我需要 Yocto 项目的源代码包。我已经拥有整个项目的所有资源,但它们还包括开发工具。 我想有一种方法来生成将为目标图像构建的所有包的(修补的)源。因此,例如,如果目标图像包含 busybox,我想
如何对入侵者隐藏 iFrame src 假设我正在流式传输我的网络摄像头或我的电脑屏幕,这是 iframe 代码: 并且我不希望它在大多数浏览器上显示页面源中的流 URL 和检查功能! 这意
是否可以进入 Qt 源,例如qmainwindow.cpp,在 Qt Creator 中?目前我正在看到反汇编,但最好能看到源代码。 最佳答案 当然!但您可能必须首先: 转到 $QT_HOME/qt
我正在尝试创建一个包含很少动漫剧集的简单网站。我有一个关于 javascript 的问题。如何通过单击我的链接之一来更改视频源?我明白,我必须使用事件监听器,只需更改 取决于我点击的链接,但我不太擅长
我有一个带有 BindingSouce 的 DevExpress GridControl。我想清除 BindingSource 并用新数据填充它。我这样做: var list = new List()
当单击提交输入按钮时,我尝试将其他参数(选定复选框的列表)传递到服务器处理的 DataTables 表#my_table: 这可能意味着我必须将 my_table.sAjaxSource 设置为后端脚
(好吧,别对我大喊大叫,这里已经很晚了:)) 我正在研究 delta diff 工具(命令行工具或组件,只要我可以从 Delphi 2010 调用它们就可以了) 我有这个项目,我将文件上传到服务器,我
我需要解析 Yahoo Weather RSS feed 中的某个位置,例如 http://weather.yahooapis.com/forecastrss?w=44418&u=c例如,获取最高、最
我是一名优秀的程序员,十分优秀!