繁体   English   中英

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

[英]How to see source code from github in Visual Studio IDE, but compile with dlls from Nuget?

如今,有很多出色的开源软件包和框架可用于各种用途。 让我们以ASP.NET Core MVC和Newtonsoft.Json为例。 这些以Nuget软件包的形式提供,已剥离了源代码。 我认为你们中的许多人都可以记住很多情况,在这种情况下,人们希望看到GitHub上免费提供的源代码(以帮助调试某些问题),但是被迫执行以下其中一项操作:

  1. 懒惰,忘掉它,或者继续使用流行的库(更像是“黑匣子”)调试您的问题;
  2. 转到浏览器,键入github.com并在没有Visual Studio IDE强大建议的情况下搜索源代码。
  3. 花费5分钟,将存储库克隆到本地驱动器,然后使用IDE查看它;
  4. 在编译源代码时花更多的时间,从您的项目中卸载所有感兴趣的nuget程序包,而是直接连接到所有新编译的程序集(它们并不总是与Nuget程序包一对一)。

最后一个选项是最可行的,但是您将花费大量时间,您不仅可以将其推送到存储库中,也不能再部署已编译的代码。 其他开发人员将找不到这些dll的相对路径,并且客户最终可能会在部署程序包中烘焙出错误版本的nuget程序包。

是否有第五种选择具有第四种的所有优点,却没有缺点? 我想这是由IDE以孤立的方式完成的,即不对我的.csproj和package.config文件进行修改,但是“转到定义”和“查找所有引用”功能以及调试应该像我被钩住一样工作直到真正的东西。

是的,我很懒。

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

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

NuGet Pack MyProject.csproj-符号

  1. 将会生成两个文件,一个是ProjectName.symbols.nupkg,另一个是ProjectName.nupkg。 将这些文件上传到您的NuGet服务器。 您也可以将它们放在本地驱动程序上。
  2. 通过工具->选项->程序包管理器控制台->程序包源,将NuGet服务器添加到Visual Studio IDE中。
  3. 打开您的项目,然后从添加的软件包源安装该软件包。
  4. 右键单击您的解决方案,选择“属性”->“公共属性”->“调试源文件”,然后将路径与包含NameName.nupkg文件的PackageName.Symbols.nupkg文件一起添加到本地计算机上。

现在,当您开始调试项目并按F11进入已安装软件包中的一个功能时,它将进入软件包源代码。

正如评论中提到的那样,有一个VS扩展可以做到这一点: Nuget Reference Switcher (选择一个与您的VS版本相匹配的安装),有关更多信息,您可以在github上阅读其wiki。

这是我通常的工作:

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

    在此处输入图片说明

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

这等效于您的第4步 ,但是工作量要少得多,因为扩展件需要繁重的工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM