- 我有一個專案 A 會產生一個 nuget N。
- 我有一個使用 N 的專案 B。
- 我有一個 B 的除錯配置,即我可以單步除錯 B 的代碼。
我也想在除錯B的程序中單步除錯A的代碼,但是這樣不行。
因為我自己從 A 構建 N,所以我可以生成一個symbols包和/或一個pdb檔案,所以我認為我確實擁有所需的一切。我只是不知道如何連接這些部分以允許我從 B 除錯會話中除錯 A 代碼。
uj5u.com熱心網友回復:
你檢查過這個嗎?
https://github.com/dotnet/sourcelink#githubcom-and-github-enterprise
您需要將其添加到您的 csproj 檔案中。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<!-- Optional: Publish the repository URL in the built .nupkg (in the NuSpec <Repository> element) -->
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<!-- Optional: Embed source files that are not tracked by the source control manager in the PDB -->
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<!-- Optional: Build symbol package (.snupkg) to distribute the PDB containing Source Link -->
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>
<ItemGroup>
<!-- Add PackageReference specific for your source control provider (see below) -->
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All"/>
</ItemGroup>
</Project>
uj5u.com熱心網友回復:
<DebugType>portable</DebugType>在我的檔案中設定csproj(對于 A 和 B)起到了作用。
我什至不需要在pdb任何地方從 A 復制檔案;它只是自己作業。
可能這只是由于我當前的設定:我有一個nuget.config用于專案 B 的專案 A 的路徑被指定,因為 nuget N 是在那里構建的。由于它是專案 A 的檔案夾,它pdb也在那里(在 bin/Debug/frameworkVersion 中)。可能是 VScode 只是檢查從中檢索 nuget 的檔案夾以及所有子檔案夾。
無論如何,如果這不適用于不同的設定,似乎只需將pdb我要除錯的代碼(因此,專案 A 的代碼)復制到我當前正在除錯的專案的輸出檔案夾中(專案 B)。這可以通過添加pdb到 nuget 以及相應target的復制pdb到輸出目錄來自動實作。
然后,如果just my code禁用,pdb檔案將自動加載。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/428631.html
上一篇:如何根據Python上的時間戳正確地將行從df附加到另一個?熊貓相關
下一篇:無法在C 中找到三次方程的實根
