繁体   English   中英

将 NuGet package 替换为本地 dll 文件

[英]Replace NuGet package with a local dll file

我正在处理的项目取决于 NuGet package。 package 中的 dll 文件是在发布模式下编译的,因此使用调试器检查代码(这是我的目标)是不可能的。

我想用我在调试模式下编译的文件替换 .dll 文件。 如果我通过 NuGet 删除 package 然后通过Add Reference添加它,我得到错误:

Assembly 'AssemblyName' with identity 'AssemblyName, Version=4.2.5.0, Culture=neutral, PublicKeyToken=null' uses 'System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cf7b13ffcb2dde54' 
which has a higher version than referenced assembly 'System.Memory' with identity 'System.Memory, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cf7b13ffcb2dde54'

用另一个替换 NuGet package.dll 的正确方法是什么。Z06416233FE5EC4C593Z318E 文件? 在哪里可以更改版本号我正在使用 Rider,但是学习如何在其他 IDE 中进行更改也很有用。

发生这种情况是因为 nuget 使用的是specific version of "System.Memory, Version=4.0.1.1",并且您System.Memory, Version=4.0.1.0 referenced in your project有 System.Z4789F23283B3A61F858B641A1BEF.1.19A.4.03. 您应该更新该参考,它应该很好。 所以问题在于您的 DLL 而不是 NuGet。 可能当您删除 nuget 时,您降级了 System.Memory,您应该通过 NuGet 将其明确更新为错误要求的版本。

专业提示,如果您想弄乱 nugets:

  • 它本质上是一个 ZIP 文件
  • 下载Nuget
  • 将扩展名更改为.zip
  • 解压
  • 瞧,你有一些 dll-s

您可以要求 nuget package 的作者将 package 的源代码和调试符号发布到公共符号源服务器并引用它。 之后,您将继续使用 dll 的发布版本,但能够对其进行调试。

暂无
暂无

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

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