NuGet依赖关系框架使用.csproj打包时,目标不起作用

时间:2014-08-28 19:17:43

标签: c# .net nuget

我有一个看起来像这样的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 $变量的功能,能够根据目标框架执行依赖组。

有人知道解决方案吗?

1 个答案:

答案 0 :(得分:1)

确保您转到包含.csproj文件的目录并执行nuget spec以根据您的.nuspec创建.csproj文件。调查它并确保它看起来像你想要的那样,为各种目标框架定制它,然后nuget pack XXXXXX.csproj让它构建并尊重.nuspec