C# 在本地调试Nuget包

C# 在本地调试Nuget包,c#,visual-studio,nuget,C#,Visual Studio,Nuget,我有一个visual studio.net核心api,它在我的解决方案中引用了一个基于工件的nuget包。nuget包是一个.net核心类库。在本地,我有两种解决方案:主API解决方案和类库解决方案。我试图实现的是,我希望能够在调试模式下运行API,并在我拥有的本地类库代码中中断方法调用,而几乎没有任何更改(如果可能的话),而无需更改API中的引用等。试图避免禁用nuget包并在解决方案中引用本地项目文件等 有没有办法做到这一点?我尝试的是在调试模式下启动API解决方案,然后进入类库项目“附加到

我有一个visual studio.net核心api,它在我的解决方案中引用了一个基于工件的nuget包。nuget包是一个.net核心类库。在本地,我有两种解决方案:主API解决方案和类库解决方案。我试图实现的是,我希望能够在调试模式下运行API,并在我拥有的本地类库代码中中断方法调用,而几乎没有任何更改(如果可能的话),而无需更改API中的引用等。试图避免禁用nuget包并在解决方案中引用本地项目文件等

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

有什么建议可以解决这个问题吗?希望这是有意义的

在本地调试Nuget包

要在本地调试nuget,您应该需要pdb文件和编译文件(cs资源文件),然后您可以使用这两个文件调试nuget。它与服务器完全不同

要将其打包,您可以将
xxx.pdb
打包为lib,并将cs文件打包到nupkg文件中。因此,它们都将在nuget包中恢复

在net core类库项目中,使用以下各项:

<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
文件夹下

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

然后,在主项目中安装该包,右键单击主解决方案-->属性-->通用属性-->
-->调试源文件-->以添加cs文件所在的文件夹路径(如果资源文件夹,则解包并添加路径)

然后可以在本地调试nuget包


此外,您也可以参考我之前解释的内容。

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