0

有一些 nuget 包,其中dlls 只存在于一个目标框架中,比如这个

- lib
  - net40
      SolidWorks.Interop.sldworks.dll
      SolidWorks.Interop.swconst.dll
      SolidWorks.Interop.swpublished.dll

无论我为消费项目选择哪个目标框架 - 例如net48, netcoreapp3.1, net5.0-windows-net6.0-windows它都将始终使用net40文件夹中的内容。

我最近使用上面列出的四个目标框架从一个项目中创建了一个 nuget,这导致在 nuget 包中创建了以下文件夹结构:

- lib
  - net48
      MyDll.dll
  - netcoreapp3.1
      MyDll.dll
  - net5.0-windows7.0
      MyDll.dll
  - net6.0-windows7.0
      MyDll.dll

出于兼容性原因,我必须将该net48版本用于我的所有消费项目的目标net48或更高版本。所以我刚刚从我的 nuget 中删除了netcoreapp3.1,net5.0-windows7.0net6.0-windows7.0文件夹来获取

- lib
  - net48
      MyDll.dll

,但随后是使用目标框架的消费项目netcoreapp3.1net5.0-windows或者net6.0-windows抱怨它找不到命名空间、类等。

所以在这种情况下,nuget 和 project 之间的目标框架确实需要匹配。

什么时候?我怎么能影响这个?

我的目标是创建一个 nuget 包,其中只包含一个包含 s 的子文件夹libdll以便

  • 没有具有以下目标框架的项目net48可以使用它
  • 所有具有目标框架net48或更新的项目都可以使用它。
4

0 回答 0