我想通过打包项目文件.csproj
而不是.nuspec
. 但我也想明确指定依赖关系。
问题是在打包项目文件时(以便我可以使用项目中的道具)<dependencies>
,.nuspec
文件中的内容没有被使用。
我这样做是为了让我可以在一个地方(in AssemblyInfo.cs
)更改我的道具,而不必更改.nuspec
每个版本。我知道我可以打包我可以.nuspec
完全控制的地方,但这已经违背了目的。(我现在实际上正在这样做,直到我可以覆盖依赖项)
有没有办法在.nuspec
?
编辑:
结合developmentDependency
这一点几乎奏效了。我在 nuspec 中使用依赖组,出于某种原因,nuget 在打包后将其展平(当然仅在打包 csproj 时)。所以这个:(仅用于演示)
<dependencies>
<group>
<dependency id="Some.Core" version="0.1.0" />
</group>
<group targetFramework="net4">
<dependency id="Microsoft.Bcl.Async" version="1.0.168" />
</group>
<group targetFramework="net45">
<dependency id="Some" version="0.1.0" />
</group>
</dependencies>
变成这样:
<dependencies>
<dependency id="Some.Core" version="0.1.0" />
<dependency id="Microsoft.Bcl.Async" version="1.0.168" />
<dependency id="Some" version="0.1.0" />
</dependencies>
因此,当在不同组中使用相同的包作为依赖项时,打包时会出现错误:
An item with the same key has already been added.