Nuget依赖性没有相应地添加

时间:2017-11-15 11:52:00

标签: dependencies nuget

我有一个名为"包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个):

  1. 项目B下载PackageA。
  2. 项目B通知packageA引用了newtonsoft.json包
  3. 项目B下载newtonsoft.json包
  4. 项目B添加对packageA.dll的引用
  5. 项目B添加对newtonsoft.json.dll的引用

0 个答案:

没有答案