Многоцелевой net461 и netstandard - netstandard зависимости, необходимые даже для потребителя net461 - PullRequest
0 голосов
/ 25 июня 2018

Я работаю над библиотекой классов, для которой я нацелился на net461 и netstandard2.0

Одна из зависимостей этой библиотеки классов - Microsoft.ApplicationInsights

Когда он был нацелен на просто net461, я мог добавить ссылку на Microsoft.ApplicationInsights (v2.4.0) через консоль менеджера пакетов или nuget ui, и она добавлялась бы как зависимость.

Как только я нацелился на csproj:

 <Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
  </PropertyGroup>

</Project>

... если я попытаюсь добавить ссылку, он попросит меня принять лицензионные соглашения для многих, многих зависимостей.Конечно, я должным образом сделал это.

Моя проблема возникает, когда я упаковываю эту библиотеку классов как пакет nuget.

Даже если мое потребительское приложение нацеливается на net461, когда я устанавливаю этот пакет,Мне предлагается установить все зависимости netstandard - даже если мое потребительское приложение не предназначено для netstandard.

Есть ли способ остановить мой целевой пакет net461, требующий все зависимости для netstandard?

1 Ответ

0 голосов
/ 25 июня 2018

Вы пытались использовать условия в файле проекта, чтобы сделать некоторые зависимости специфичными для фреймворка? У меня были похожие проблемы с звучанием, но не с созданием пакетов nuget, и это помогло.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
  </PropertyGroup>

  <ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
    <Reference Include="DependencyA" />
  </ItemGroup>

  <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
    <PackageReference Include="DependencyB" Version="1.0.0" />
  </ItemGroup>

</Project>

Другой идеей было бы посмотреть на существующие проекты с открытым исходным кодом и посмотреть, как они их решают. Хотя найти один из них, используя Microsoft.ApplicationInsights, может быть сложнее.

...