У нас есть большое решение, содержащее C#, C++ и несколько проектов C++/CLI. . Целевая платформа установлена на .NET 6 (последняя версия LTS и все такое). В то же время я хотел бы использовать C# 11, который требует использования SDK .NET 7 при сборке.
Для обычных проектов C# я могу просто использовать global.json для укажите .NET 7 (при использовании достаточно новой VS), сохраняя при этом TargetFramework=6.0.
При выполнении того же самого с проектами C++/CLI я получаю NETSDK1145 ошибка:
Ошибка NETSDK1145 Пакет Apphost не установлен, а восстановление пакета NuGet
не поддерживается. Обновите Visual Studio, удалите файл global.json, если
в нем указана определенная версия SDK, и удалите более новую версию SDK. Для
дополнительных параметров посетите https://aka.ms/targeting-apphost-pack-missing
Тип пакета: Apphost, каталог пакета: C:\Program
Files\dotnet\packs\Microsoft .NETCore.App.Host.win-x64,
targetframework: net6.0, Pack PackageID:
Microsoft.NETCore.App.Host.win-x64, версия пакета пакета:
6.0.16 C:\Program Files\dotnet\sdk\7.0.203\Sdks\Microsoft.NET.Sdk\targets\Microsoft .NET.Sdk.FrameworkReferenceResolution.targets 135
В ссылке что-то говорится о настройке
Код: Выделить всё
EXISTINGVERSION
Подробнее здесь: https://stackoverflow.com/questions/766 ... ding-c-cli