Импорт простого пользовательского пакета NuGet с ошибкой: пакет не поддерживает целевые платформы
Я создал библиотеку классов.NET Framework, нацеленную на 4.6.1 .NET Framework. Проект содержит один класс.cs и не содержит внешних ссылок ни на какие библиотеки, библиотеки DLL или пакеты NuGet. Вот nuspec:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<!-- Required elements-->
<id>MyEventLogger.Core</id>
<version>1.0.0</version>
<description>Logs event log</description>
<authors>Me</authors>
</metadata>
<files>
<file src="MyEventLogger.Core\**\bin\Debug\*.dll" target="lib\net" />
<file src="MyEventLogger.Core\**\bin\Debug\*.dll" target="lib\netstandard" />
</files>
</package>
У меня проблемы с импортом из приложения ASP.NET Core, работающего на.NET Framework 4.7.1.
Ошибка, которую я получаю, состоит в том, что пакет не поддерживает никаких структур:
Я использую конвейер Azure Devops Build для запуска пакета и отправки на локальный канал. Как правильно ссылаться на это, чтобы приложение в более новой версии.NET Framework все еще могло использовать эту библиотеку в более старой версии?
Спасибо за любую помощь! Я не могу найти, как исправить эту ошибку нигде или хорошие примеры нацеливания на несколько.NET Frameworks.
2 ответа
Я начал работать, когда смог использовать следующие файловые узлы:
<files>
<file src="**\MyEventLogger.Core.dll" target="lib\net461\MyEventLogger.Core.dll" />
</files>
Что помогло мне понять это, так это установить NuGet на мою машину, а также установить NuGetPackageExplorer. Вы можете создать пакет, используя NuGetPackageExplorer, а затем экспортировать файл.nuspec. Я скопировал этот файл.nuspec в свой репозиторий, а затем указал конвейер сборки DevOps Azure на файл.nuspec. Эта ошибка исчезает, когда я импортирую пакет в другой проект.
Чтобы вы могли использовать код в.net framework и.net core, вам нужно написать свой код в библиотеке, написанной в стандарте.net. Вы можете найти подобное решение здесь
Спасибо