Как сделать сборку для. net core 3.1 и .netstandard2.0? - PullRequest
0 голосов
/ 24 марта 2020

Может кто-нибудь сказать, пожалуйста, каков правильный подход? Это мой файл проекта

  <PropertyGroup> 
    <TargetFramework>netstandard2.1</TargetFramework>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
  </ItemGroup>

и это части файла nuspe c

   <dependencies>
      <group targetFramework=".NETStandard2.1">
        <dependency id="Microsoft.CSharp" version="4.7.0" />
      </group>
      <group targetFramework=".NetCore,Version=3.1">
        <dependency id="Microsoft.CSharp" version="4.7.0" />
      </group>
    </dependencies>
    <packageTypes>
      <packageType name="Dependency" />
    </packageTypes>  
  </metadata>
  <files>
    <file src="bin\$configuration$\**\*.*" exclude="**\*.pdb" target=".\lib"/>
  </files>

При сборке сборки с использованием Cake мы указываем Win-x64 в качестве среды выполнения. Это правильно?

Структура файла / папки в сгенерированном nupkg:

\lib
   \netcoreapp3.1
      \any
      \win
      \win-x64
   \netstandard2.0
      \win10-x64

Инструменты: VS2019, NuGet v5.4.0

Затем, когда я пытаюсь установить его в проекте. net core 3.1 меня пугает:

Error   NU1202  Package JDM.Common.Json 0.2.2 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package JDM.Common.Json 0.2.2 does not support any target frameworks. ... 

Я должен признать, что отсутствие этой работы сводит меня с ума.

TIA

1 Ответ

2 голосов
/ 24 марта 2020

Для этого не нужно создавать файл nuspe c. Вы можете использовать множественное число TargetFrameworks и указать несколько целевых структур:

  <PropertyGroup> 
    <TargetFramework>netstandard2.1;netcoreapp3.1</TargetFramework>
  </PropertyGroup>

Затем вы можете создать файл .nupk, используя dotnet pack

...