如何在Visual Studio IDE中查看github的源代码,但是使用Nuget的dll进行编译?

时间:2016-09-18 16:43:16

标签: c# .net visual-studio visual-studio-2015 nuget

现在有很多很棒的开源软件包和框架可供各种用途使用。我们以ASP.NET Core MVC和Newtonsoft.Json为例。 这些是在Nuget包中提供的,它们被剥夺了源代码。 我想很多人都记得很多情况,其中一个人希望在GitHub上免费获得源代码(以帮助调试某些问题),但是被迫执行以下操作之一:

  1. 懒惰,只是忘了它,或继续调试你的问题与一个流行的图书馆对待它更像是一个“黑匣子”;
  2. 转到浏览器,键入github.com并搜索源代码,不要使用Visual Studio IDE强大的建议;
  3. 花5分钟,将存储库克隆到本地驱动器并使用IDE查看;
  4. 在编译源代码时花费更多时间,从项目中卸载所有感兴趣的nuget包,而是直接连接到所有新编译的程序集(这些程序集并不总是与Nuget程序包一对一)。
  5. 这最后一个选项是最可行的,但是你需要花费大量的时间,而不能只是将它推送到你的存储库或再部署已编译的代码。其他开发人员不会找到这些dll的相对路径,客户最终可能会在部署包中出现错误版本的nuget包。

    是否有第五个选项具有第四个选项的所有优点,但没有一个缺点?我想这是由一个孤立的时尚的IDE完成的,即没有修改我的.csproj和package.config文件,但是“Go to definition”& “查找所有引用”功能和调试应该工作,好像我迷上了真实的东西。

    是的,我很懒。

2 个答案:

答案 0 :(得分:2)

请将程序包打包为符号包,然后在下载程序包源代码后将PackageName.Symbols.nupkg文件与ProjectName.nupkg文件放在同一个程序包服务器上。我正在使用以下步骤在Visual Studio IDE中调试我的NuGet包源代码。

  1. 创建我的NuGet包项目并实现我想要的功能。在您的情况下,您只需要从Github.com下载软件包源代码。
  2. 在Visual Studio IDE中构建项目,它将在bin \ Debug文件夹中包含一个dll文件和一个pdb文件。
  3. 下载NuGet.exe并运行此命令将源代码项目打包到包:
  4.   

    NuGet Pack MyProject.csproj -Symbols

    1. 将生成两个文件,一个是ProjectName.symbols.nupkg,另一个是ProjectName.nupkg。将这些文件上传到NuGet Server。你也可以把它们放在当地的司机上。
    2. 通过工具将NuGet服务器添加到Visual Studio IDE中 - >选项 - >包管理器控制台 - >包装来源。
    3. 打开项目并从添加的软件包源安装软件包。
    4. 右键单击您的解决方案,选择“属性” - >共同属性 - >调试源文件,添加PackageName.Symbols.nupkg文件与本地计算机上存储的ProjectName.nupkg文件的路径。
    5. 现在,当您开始调试项目并按F11步骤进入已安装软件包中的一个函数时,它将进入包源代码。

答案 1 :(得分:1)

如其中一条评论所述,有一个VS扩展可以做到这一点: Nuget Reference Switcher(选择一个与您的VS版本相匹配的版本),有关详细信息,您可以在github上阅读其维基。

这是我通常做的事情:

  1. git clone源存储库
  2. 将开源.sln/.csproj添加到您自己的解决方案中:

    enter image description here

  3. 运行nuget参考切换器扩展

  4. 这相当于你的第4步,但由于扩展程序完成了繁重工作,因此工作量减少了很多。