Миграция с 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 под соответствующей структурой вашего проекта.