gpt4 book ai didi

.net - 显示我的 nuget 的源代码

转载 作者:行者123 更新时间:2023-12-03 23:17:58 25 4
gpt4 key购买 nike

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

一切正常,但有一些显着的副作用。

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

我知道 nuget 包不显示它自己的源代码是一种正常行为,但我想知道是否可以将 nuget 包设置为“受信任模式”,以便 Visual Studio 能够在其中搜索功能并且开发人员能够直接查看源代码(当然不能对其进行编辑)。

多谢。

最佳答案

so that visual studio will be able to search for function inside it and developpers able to look directly at the source code (without being able to edit it of course).



如果我知道您是正确的,您想访问 nuget 包中的代码但无法编辑?如果是,您可以尝试创建符号包,允许使用者在 Visual Studio 调试器中进入您的包代码。

我们这样做(和工作)的方式:
  • 创建“*.symbols.nupkg”。
  • 将符号包部署到 SymbolSource 服务器。
  • 配置 IDE,包消费者可以将 https://nuget.smbsrc.net/ 添加到 Visual Studio 中的符号源。
  • 使用 NuGet(来自我们的 SymbolSource 服务器)将所需的库添加到项目中。
    调试。

  • 详细信息可以引用 Creating symbol packages

    如果这些包不适合在 NuGet Gallery/SymbolSource 上发布,您可以将 *.nupkg 和 *.symbols.nupkg 文件放在网络共享的 NuGet 本地源上。这个方法的详细介绍可以引用类似的issue:

    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 :

    The debugger looks for source files in the following locations:

    >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文件中的源代码,你应该在解决方案中添加源代码。您可以在解决方案中创建一个新项目来存放源文件并将此项目添加为引用项目。这会使您的解决方案/项目变得困惑,但由于它将被 checkin 源代码管理,所有团队成员将自动能够调试到源文件中。

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

    关于.net - 显示我的 nuget 的源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45821761/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com