随着netstandard的出现,创建可以在netcore和netframework中使用的库应该会更容易。还可以将多个目标框架添加到netstandard库,以便可以为多个目标构建它。但是,有一些东西在某种程度上对我不适合,也许我认为它是错误的方式。我会尽力解释这个场景。
我有这个netstandard库,目标是netstandard1.5和net461。我通过将项目更改为并添加两个目标来完成此操作。该项目正在构建并打包成一个nuget包,经过仔细检查,它确实包含net461和netstandard1.5的二进制文件。有了这个,我假设我有一个可以添加到netcore项目或netframework项目的库,具有最小的依赖性。此外,该库依赖于Microsoft.Extensions.Logging.Abstractions(1.1.2),Newtonsoft.Json(10.0.2)和System.Security.SecureString(4.3)。
另一方面,我有一个经典的控制台项目,使用netframework 461.当然,我想在这里使用这个库,因为它是一个netframework 461项目,而且库也是netframework 461,我认为依赖关系将保持最小。当我查找包时,它的依赖关系是我所期望的,但是当我去尝试安装它时,我充斥着我认为不必要的依赖关系,例如NETStandard.Library(1.6) .2),Microsoft.NETCore.Platforms(1.1.0),System.Runtime(4.3)及其所有关联(集合,io,安全性等)。我认为我不需要添加所有这些依赖项,因为库以netframework为目标,但看起来我错了或其他错误。
有人可以提供一些有关此问题的见解吗?
答案 0 :(得分:2)
我想我会回答我自己的问题,这实际上并不复杂。
事实证明,Microsoft.Extensions.Logging仅针对netstandard,因此需要所有其他依赖项。
一旦我删除了Microsoft软件包并重建了自己的软件包,我就可以将它作为依赖项添加到netframework项目中而不会造成任何混乱。
也许这会在将来帮助某人......