Миграция с PCL на.netstandard

Я пытаюсь выяснить, как перенести проект из PCL в.netstandard 1.2.

У меня есть решение, в котором у меня есть проект PCL (portable45-net45+win8+wpa81) и проект.Net Standard (netstandard1.2), в котором все его файлы связаны с проектом PCL.

В настоящее время мы создаем пакет nuget из проекта PCL, используя файл nuspec. Каков наилучший подход, чтобы оба были доступны в 1 пакете nuget? Я нахожу применение nuget pack против dotnet pack и смешивание нескольких фреймворков и типов проектов (csproj) очень запутанно.

Также очевидно, что существует новый формат csproj для проектов VS2017+. Должен ли я конвертировать проект PCL?

В конце концов, nuget должен содержать только проект.netstandard1.2, но мы хотим использовать оба дерева зависимостей во время миграции.

1 ответ

Каков наилучший подход, чтобы оба были доступны в 1 пакете nuget?

Вы все еще можете использовать .nuspec Для этого нужно просто включить DLL-файлы из проекта PCL и.Net Standard в разные фреймворки.

Ниже мой тестовый файл.nuspec, вы можете проверить его для деталей:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>My.Package</id>
    <version>1.0.0</version>
    <authors>Tester</authors>
    <owners>Tester</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Package description</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>Copyright 2018</copyright>
    <tags>Tag1 Tag2</tags>
  </metadata>
    <files>
       <file src="TestPCL\bin\Debug\TestPCL.dll" target="lib\portable-net45+wp8\" />
       <file src="TestStandard\bin\Debug\netstandard1.2\TestStandard.dll" target="lib\netstandard1.2\" />
    </files>
</package>

Когда вы устанавливаете этот пакет в проект PCL и проект.Net Standard, nuget выберет файл DLL под соответствующей структурой вашего проекта.

Другие вопросы по тегам