![](/img/trans.png)
[英]How can I publish source code (Visual Studio) on a intranet?
[英]How can I get Visual Studio to use Embedded Source code whilst debugging?
我已经使用<EmbedAllSources>
文件中的<EmbedAllSources>
元素将 C# 源代码嵌入到一个可移植的 PDB 文件中,并且我已经使用<DebugType>embedded<DebugType>
将 pdb 嵌入到程序<DebugType>embedded<DebugType>
,如在 PDB中嵌入 C# 源中所述新的csproj
我的程序集如下所示:
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<EmbedAllSources>true</EmbedAllSources>
<DebugSymbols>true</DebugSymbols>
<DebugType>embedded</DebugType>
</PropertyGroup>
我可以确认 pdb 是可移植的,并且包含我的源代码:
根据 Visual Studio 15.5 的发行说明,调试器应该能够在调试期间使用这些文件:
https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes-v15.5#EmbeddedSource
我使用的是 Visual Studio 2017(版本号 15.8.8)
但是,当我从我的程序集中 F11 进入代码时,它要求提供源代码:
虽然在谷歌搜索中有来自 ctaggart 的评论https://github.com/ctaggart/SourceLink/issues/192说运行 sourcelink print-urls 将打印“嵌入”但我的没有,也许这是一个提示:
有没有人让它成功工作? 如果是这样,你能告诉我做错了什么吗?
最简单的方法是去:
Debug -> Windows -> Modules
在此列表中,您应该能够找到您的程序集(dll/exe)。
Right click it -> Load Symbols
它会询问从哪里加载符号。
导航到匹配的 .pdb 文件所在的目录。
它应该自动加载。 步入或在此引用的程序集中出现未捕获的错误应触发该代码的中断,或要求您导航到与引发错误的文件对应的代码文件。
在我们的过程中,我们通常必须导航到 nuget 缓存以找到我们已安装的 nuget 包的 pdb。 (%UserProfile%/nuget/packages/YourPackage/VersionNumber/../..)
我们还用这些包打包源代码并导航到那些/nuget/packages .cs
文件,不过,任何corresponding .cs
文件都应该允许它加载。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.