NuGet - 在使用“在每次构建后创建新的NuGet包”包时,在.nuspec文件中添加组依赖项

时间:2014-12-02 18:11:11

标签: dependencies nuget nuspec

我正在使用Daniel Schroeder在“每个构建之后的项目中创建新的NuGet包”NuGet包来通过Visual Studio 2013从我的项目中自动创建NuGet包。我在遇到组依赖关系时遇到了问题。 nuspec文件。这就是我在.nuspec文件中的内容:

<dependencies>
   <group targetFramework=".NETFramework3.5">
        <dependency id="BitMiracle.LibTiff.NET" version="2.4.500.0" />
   </group>
   <group targetFramework=".NETFramework3.5">
       <dependency id="FAImage.Net35" version="1.0.0" />
   </group>
   <group targetFramework="Silverlight5.0">
      <dependency id="FAImage.SL50" version="1.0.0" />
  </group>
</dependencies>

依赖项包含在包中,但它们不依赖于.nuspec文件标记中指定的特定平台。它们都被包含在“非特定于框架”中。当通过NuGet包资源管理器创建相同的包时,正确地获取依赖关系。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

我是nuget的新手,但你试过了吗?

<group targetFramework="net35">
   <dependency id="BitMiracle.LibTiff.NET" version="2.4.500.0" />
   <dependency id="FAImage.Net35" version="1.0.0" />
</group>
<group targetFramework="sl5">
    <dependency id="FAImage.SL50" version="1.0.0" />
</group>

答案 1 :(得分:1)

您的nuspec文件缺少您要定位的每个框架的<frameworkAssemblies>标记。正如@Patrick指出的那样,您还需要使用框架别名。

<package>
    <metadata>
        <!-- snip other data -->
        <dependencies>
            <group targetFramework="net35">
                <dependency id="BitMiracle.LibTiff.NET" version="2.4.500.0" />
                <dependency id="FAImage.Net35" version="1.0.0" />
            </group>
            <group targetFramework="sl5">
                <dependency id="FAImage.SL50" version="1.0.0" />
            </group>
        </dependencies>
        <frameworkAssemblies>
            <frameworkAssembly assemblyName="System.Core" targetFramework="net35" />
            <frameworkAssembly assemblyName="System.Core" targetFramework="sl5" />
        </frameworkAssemblies>
    </metadata>
</package>