NuGet - добавление групповых зависимостей в файл.nuspec при использовании пакета "Создать новый пакет NuGet после каждой сборки"

Я использую пакет NuGet "Создать новый пакет NuGet из проекта после каждой сборки" Даниэля Шредера, чтобы автоматически создавать пакеты NuGet из моих проектов через Visual Studio 2013. Я сталкиваюсь с проблемой, когда в файле.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 ответа

Я новичок в 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>

В вашем файле 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>
Другие вопросы по тегам