显示我的nuget的源代码

时间:2017-08-22 15:30:58

标签: .net visual-studio nuget

我和我的团队构建了我们在许多项目中使用的框架。我们曾经在所有其他项目中包含框架项目,但后来我们决定将我们的框架放入我们的nuget服务器上的nuget软件包主机中,这样我们就可以在开发过程中更轻松地进行版本控制和扩展框架。

每件事情都很好,但除此之外还有一些值得注意的副作用。

Visual Studio无法直接查看nuget的dll本身,因此例如VS搜索引擎无法查找我的nuget中存在的函数。 出于同样的原因,我假设,我不能再在项目中看到框架的源代码,只显示元数据。

我理解,nuget包的正常行为是不显示它自己的源代码,但我想知道是否可以将nuget包设置为"信任模式",以便visual studio能够在其中搜索功能并开发能够直接查看源代码的开发人员(当然无法编辑它)。

很多。

1 个答案:

答案 0 :(得分:3)

  

以便visual studio能够在其中搜索功能并开发能够直接查看源代码的开发人员(当然无法编辑它)。

如果我知道您是正确的,您想要访问nuget包中的代码但无法编辑?如果是,您可以尝试创建符号包,使消费者可以在Visual Studio调试器中单步执行包代码。

我们这样做(并且有效):

  1. 创建“* .symbols.nupkg”。

  2. 将符号包部署到SymbolSource服务器。

  3. 配置IDE,Package使用者可以将https://nuget.smbsrc.net/添加到Visual Studio中的符号源。

  4. 使用NuGet(来自我们的SymbolSource服务器)将所需的库添加到项目中。 调试。

  5. 有关详细信息,请参阅Creating symbol packages

    如果这些软件包不适合在NuGet Gallery / SymbolSource上发布,则可以将* .nupkg和* .symbols.nupkg文件放在网络共享上的NuGet本地供稿中。有关此方法的详细信息,您可以参考类似的问题:

    Is it possible to host both regular and symbols packages in a NuGet local feed on a network share?

    此外,在这种情况下,您不必担心开发人员会编辑源代码,因为所有包都下载到本地包文件夹,编辑不会影响网络共享上的源代码,直到您重新发布它为止

    更新详细信息:

    您应该添加一个断点并按F11进入源代码:

    enter image description here

    更新按F12检查dll中的源代码:

    根据MSDN documentation

      

    调试器在以下位置查找源文件:

    >1. Files that are open in the IDE of the Visual Studio instance that launched the debugger.
    
    >2. Files in the solution that is open in the VS instance.
    
    >3. Directories that are specified in the "Common Properties" / "Debug Source Files" page in the properties of the solution.
    
    >4. The source information of the .pdb of the module. This can be the location of the source file when the module was built, or it can be a command to a source server.
    

    因此,如果您想直接通过F12访问dll文件中的源代码,则应在解决方案中添加源代码。您可以在解决方案中创建一个新项目来存放源文件,并将此项目添加为参考项目。这将使您的解决方案/项目变得混乱,但由于它将被检入源代码管理,所有团队成员将自动调试到源文件。

    此外,建议使用ReSharper,您可以通过转到ReSharper / Options / External Sources启用它,然后向上移动“来自符号文件的源”。然后在“符号文件来源”选项卡中,单击“高级”,您可以在那里映射源文件夹。