我有一个名为"包A和#34;的nuget包。包A使用名为Newtonsoft.Json的包
当我的包被打包时,.nuspec看起来像这样
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<RedactedGeneralInfo>
<dependencies>
<dependency id="Newtonsoft.Json" version="10.0.3" />
</dependencies>
</metadata>
</package>
将包A安装到我的项目后,其packages.config看起来像
<packages>
<package id="mycompany.productname.packageA" version="8.3.0.4" targetFramework="net461"/>
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net461"/>
</packages>
一切都很好看。我已经下载了我的packageA,它注意到我对newtonsoft的依赖,因此它也为我的软件包添加了newtonsoft。
然而,当我查看我的项目参考时,我只看到&#34; mycompany.productname.packageA&#34;添加作为参考。期待的&#34; Newtonsoft.Json&#34;我项目中的参考文献遗失了。
一般来说,项目中也缺少Newtonsoft。当我构建我的项目时,它编译时没有任何错误,但是在应该使用newtonsoft的第一行代码中会抛出错误,因为我的项目没有引用newtonsoft.json.dll。
我做错了什么或我应该做些什么来确保我得到正确的参考?
我已经尝试了什么?:
使用我的.nuspec文件直接将newtonsoft.json.dll添加到packageA。这部分工作,因为它确实我有对newtonsoft.json.dll的引用。但是我得到的参考是&#34; ../ packages / packageA / newtonsoft.json.dll&#34; (硬参考)而不是&#34; ../ packages / Newtonsoft.json / newtonsoft.json.dll&#34; (软参考,我可以独立于包A更新newtonsoft)
注意:手动添加引用或在另一个包中包含引用不是我想要的结果。
期望的结果(1槽4已经发生,我现在只需要5个):