Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете создать решение, которое компилируется как для .NET Framework, так и для .NET параллельно. В этой статье рассматриваются несколько вариантов проектной организации, которые помогут вам достичь этой цели. Ниже приведены некоторые типичные сценарии, которые следует учитывать при выборе способа настройки макета проекта с помощью .NET. Список может не охватывать все, что вы хотите.
Объединение существующих проектов и проектов .NET в один проект
Преимущества:
- Упрощает процесс сборки путем компиляции одного проекта, а не нескольких проектов, предназначенных для разных версий или платформ .NET Framework.
- Упрощает управление файлами исходного кода для нескольких целевых проектов, так как необходимо управлять одним файлом проекта. При добавлении или удалении исходных файлов альтернативные варианты требуют ручной синхронизации этих файлов с другими проектами.
- Легко создать пакет NuGet для использования.
- Позволяет писать код для определенной версии .NET Framework с помощью директив компилятора.
Недостаток:
- Требует, чтобы разработчики использовали Visual Studio 2019 или более позднюю версию для открытия существующих проектов. Для поддержки более старых версий Visual Studio рекомендуется сохранить файлы проекта в разных папках .
-
Преимущества:
- Поддерживает разработку существующих проектов для разработчиков и участников, которые могут не иметь Visual Studio 2019 или более поздней версии.
- Снижает вероятность создания новых ошибок в существующих проектах, так как в этих проектах не требуется никаких изменений в коде.
Рассмотрим этот пример репозитория GitHub. На рисунке ниже показано, как расположен этот репозиторий:
В следующих разделах описано несколько способов добавления поддержки .NET на основе примера репозитория.
Замена существующих проектов несколькими целевыми проектами .NET
Переорганизуйте репозиторий таким образом, чтобы все существующие файлы *.csproj были удалены, и создается один файл *.csproj , предназначенный для нескольких платформ. Это отличный вариант, так как один проект может компилироваться для разных платформ. Он также имеет возможность обрабатывать различные параметры компиляции и зависимости для каждой целевой платформы.
Пример кода см. в разделе GitHub.
Изменения, которые следует заметить:
- Замена packages.config и *.csproj новым .NET *.csproj. Пакеты NuGet указываются с
<PackageReference> ItemGroup
.
Сохранение существующих проектов и создание проекта .NET
Если есть проекты, предназначенные для более старых платформ, вы можете оставить эти проекты без изменений и использовать проект .NET для более новых платформ.
Пример кода см. в разделе GitHub.
Проекты .NET и существующие проекты хранятся в отдельных папках. Сохранение проектов в отдельных папках позволяет избежать принудительного использования Visual Studio 2019 или более поздних версий. Вы можете создать отдельное решение, которое открывает только старые проекты.