簡體   English   中英

Nuget pack無法識別依賴項中的$ version $

[英]Nuget pack does not recognize $version$ in dependencies

所以,之前我們使用nuspec文件( nuget pack myproj.nuspec )調用nuget pack。 nuspec看起來像這樣:

<package>
  <metadata>
    <version>$version$</version>
    [more properties]
    <dependencies>
      <dependency id="MySubProj" version="$version$" />
      [more explicit dependencies]
    </dependencies>
  </metadata>  
</package>

我將調用切換到( nuget pack myproj.csproj ),因此我們總是過時的顯式依賴項將自動生成。

一切都很好,除了現在完成的nuspec是這樣的

<package>
  <metadata>
    <version>1.2.3.4</version>
    [more properties]
    <dependencies>
      <dependency id="MySubProj" version="0.0.0.0" />
      [more explicit dependencies]
    </dependencies>
  </metadata>  
</package>

雖然MySubProj的正確版本也是1.2.3.4。

更多信息:

  • MySubProj是同一解決方案中的一個項目
  • 它捆綁在一個單獨的nuget包中
  • MySubProj nuget包的版本以及捆綁的dll的版本是正確的。

我不知道我做錯了什么以及為什么它在使用nuspec直接與csproj時會起作用:/

使用csproj結合nuspec(仍然存在NuGet 3.5)時似乎是一個非常古老的bug ...

實現此功能的一種方法是添加額外的屬性

<package>
  <metadata>
    <version>$version$</version>
    [more properties]
    <dependencies>
      <dependency id="MySubProj" version="$PackageVersion$" />
      [more explicit dependencies]
    </dependencies>
  </metadata>  
</package>

然后更新您的命令

NuGet.exe pack myproject.csproj -Version 1.2.3.4 -Properties "PackageVersion=1.2.3.4"

它不是那么干凈,但它有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM