【问题标题】:Debugging Nuget Package locally在本地调试 Nuget 包
【发布时间】:2020-07-16 00:09:44
【问题描述】:

我有一个 Visual Studio .net 核心 API,它在我的解决方案中引用了一个基于人工制品的 nuget 包。 nuget 包是一个 .net 核心类库。在我的本地,我有两个解决方案,主要 API 解决方案和类库解决方案。我想要完成的是我希望能够在调试模式下运行 API 并在我有本地的类库代码中闯入方法调用,几乎没有任何更改,如果它甚至可能不更改引用等。在 API 中。尽量避免禁用 nuget 包并在解决方案等中引用本地项目文件。

有没有办法做到这一点?我尝试的是在调试模式下启动 API 解决方案,然后进入类库项目“附加到进程”并选择处于调试状态的“devenv.exe”。我还尝试将 DLL 和 PDB 文件发布到与 API 相同的调试文件夹,但仍然没有中断代码。

有什么建议可以处理这个本地问题吗?希望这是有道理的。

【问题讨论】:

  • 我对措辞有点困惑。您是否有权访问 NuGet 包的源代码? (即你能进去查看完整的文件,然后编译成 NuGet 包吗?)
  • 是的,克里斯正确我有 Nuget 解决方案的完整代码。我有 nuget 解决方案,它是用于 git hub 代码的 .net 核心类库,然后代码通过 ci/cd 并发布到 Artifactory。在一个 API 解决方案中,我在本地管理 nuget 包,并且引用了 Artifactory nuget 包。但是,我需要调试该类库 nuget 包并进入类库代码。尽量避免改API方案引用引入类库项目,改API代码引用本地项目
  • 我正在尝试查看是否有一种方法可以附加以某种方式将类库处理到 API 并以这种方式进行调试。
  • 那么我将如何在本地使用它来处理我的案例 Lex?我知道可以发布包符号。

标签: c# visual-studio nuget


【解决方案1】:

在本地调试 Nuget 包

要在本地调试nuget,您需要pdb文件和编译文件(cs资源文件),然后才能调试nuget 与他们两个。它与服务器完全不同。

打包,可以将xxx.pdb打包为lib,将cs文件打包到nupkg文件中。所以它们都将在 nuget 包中恢复。

在您的网络核心类库项目中,使用这些:

<ItemGroup>
    <None Include="$(OutputPath)ClassLibrary.pdb" Pack="true" PackagePath="lib\$(TargetFramework)"></None>
 <Compile Update="Class1.cs" Pack="true"  PackagePath="Resource">
</ItemGroup>

那么cs文件将存在Resource文件夹下,pdb文件将存在lib文件夹下。 p>

==========================

然后,将该包安装到主项目中,右键单击主解决方案-->Properties-->Common Properties-->Debug Source Files-->添加cs文件所在的文件夹路径(解压包,如果Resource文件夹添加路径)。

然后就可以在本地调试nuget包了。

另外,你也可以参考我之前解释过的this similar thread

【讨论】:

    猜你喜欢
    • 2020-04-12
    • 2016-07-03
    • 2021-10-31
    • 2011-10-25
    • 2012-09-26
    • 2021-04-19
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多