Устранение ошибок платформа .NET Framework таргетинга
Применимо к: Visual Studio
В этом разделе описаны ошибки MSBuild , которые могут возникать из-за проблем со ссылками, а также способы их устранения.
Ссылка на проект или сборку, предназначенные для другой версии .NET
Вы можете создавать приложения, ссылающиеся на проекты или сборки, предназначенные для различных версий .NET. Например, можно создать приложение, предназначенное для .NET 6, но ссылающееся на сборку, предназначенную для .NET Core 3.1. Однако нельзя задать ссылку в проекте, ориентированном на более раннюю версию .NET, на проект или сборку, предназначенные для .NET 6. Ниже приведен пример ошибки, которую вы можете увидеть в этом случае:
error NU1201: Project ClassLibrary-NET6 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Project ClassLibrary-NET6 supports: net6.0 (.NETCoreApp,Version=v6.0)
2>Done building project "ClassLibrary-NET31.csproj" -- FAILED.
Чтобы устранить эту ошибку, убедитесь, что приложение предназначено для версии .NET, совместимой с версией, предназначенной для проектов или сборок, на которые ссылается ваше приложение.
Перенацеливать проект на другую версию .NET
Если изменить целевую версию .NET для приложения, Visual Studio изменит некоторые ссылки, но некоторые ссылки может потребоваться обновить вручную. Например, одна из ранее упомянутых ошибок может возникнуть, если изменить приложение на целевой .NET Core 3.1 и это приложение содержит ссылки, ресурсы или параметры, которые зависят от .NET 6.
Обновление ссылок в app.config
Чтобы обойти параметры приложения в платформа .NET Framework приложениях, выполните следующие действия.
- Откройте обозреватель решений.
- Выберите Показать все файлы, а затем измените файлapp.config в редакторе XML Visual Studio.
- Измените версию в параметрах, чтобы она соответствовала соответствующей версии .NET. Например, можно изменить параметр версии с 4.0.0.0 на 2.0.0.0.
Аналогичным образом для приложения, которое добавило ресурсы, выполните следующие действия:
- Откройте обозреватель решений.
- Выберите Показать все файлы.
- Разверните узел Мой проект (Visual Basic) или Свойства (C#), а затем измените файл Resources.resx в XML-редакторе Visual Studio.
- Измените параметр версии с 4.0.0.0 на 2.0.0.0.
Обновление ресурсов
Если в приложении есть такие ресурсы, как значки, растровые изображения или параметры, такие как строки подключения к данным, вы также можете устранить ошибку, удалив все элементы на странице ПараметрыDesigner Проекта и считывая необходимые параметры.
Вы повторно нацеливайте проект на другую версию .NET, и ссылки не разрешаются
Если перенацелить проект на другую версию .NET, в некоторых случаях ссылки могут быть неправильно разрешены. Явные полные ссылки на сборки часто вызывают эту проблему, но ее можно устранить, удалив ссылки, которые не разрешаются, а затем добавив их обратно в проект. В качестве альтернативы можно изменить файл проекта, заменив ссылки. Сначала удалите ссылки следующей формы:
<Reference Include="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />
Затем замените их простой формой:
<Reference Include="System.ServiceModel" />
Примечание.
После закрытия и повторного открытия проекта также следует перестроить его, чтобы убедиться, что все ссылки разрешаются правильно.