我有一个看起来像这样的NuGet .nuspec:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/10/nuspec.xsd">
<metadata>
<id>XXXXXXXXX</id>
<version>1.0.0-alpha</version>
<authors>XXXXXXXXX</authors>
<owners>XXXXXXXXXXX</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>XXXXXXXXXXXXXXXXXXX</description>
<copyright>XXXXX</copyright>
<dependencies>
<group>
<dependency id="Dependency1" version="1.0.0" />
</group>
<group targetFramework=".NETFramework3.5">
<dependency id="Dependency2" version="3.9.71" />
</group>
<group targetFramework=".NETFramework4.0">
<dependency id="Dependency3" version="4.0.30" />
<dependency id="Dependency4" version="4.0.30" />
<dependency id="Dependency5" version="4.0.30" />
<dependency id="Dependency6" version="4.0.30" />
</group>
</dependencies>
</metadata>
<files>
<file src=".XXX.Net35\bin\Release\XXX.dll" target="lib\net35" />
</files>
</package>
当我通过以下方式将NuGet包与nuspec打包时:
nuget pack XXXXXX.nuspec
一切都很好,依赖团体都在那里。如果我用csproj打包就像:
nuget pack XXXXXX.csproj
依赖关系都集中在一个目标而不是组中。我真的希望使用$ id $和$ version $变量的功能,能够根据目标框架执行依赖组。
有人知道解决方案吗?
答案 0 :(得分:1)
确保您转到包含.csproj
文件的目录并执行nuget spec
以根据您的.nuspec
创建.csproj
文件。调查它并确保它看起来像你想要的那样,为各种目标框架定制它,然后nuget pack XXXXXX.csproj
让它构建并尊重.nuspec
。