Я использую Visual Studio 2017. У меня есть проект, для которого я хотел бы создать нюгет с иконкой. Если я использую
...
<PackageIconUrl>http://blabla/icon.png</PackageIconUrl>
, я получаю следующую ошибку:
error NU5048: The 'PackageIconUrl'/'iconUrl' element is deprecated. Consider using the
'PackageIcon'/'icon' element instead. Learn more at https://aka.ms/deprecateIconUrl
[D:\myproject.csproj]
Хорошо, поэтому я изменяю свой проект на что-то вроде:
...
<PackageIcon>core.png</PackageIcon>
...
<Content Include="..\Shared\core.png" Link="core.png" Pack="true" PackagePath="\" >
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
Когда ясоздать свой проект сейчас (dotnet build Myproject.csproj) Я не получаю никаких ошибок компиляции. Однако, когда я хочу просмотреть сгенерированный nupkg в «Исследователе пакетов Nuget». Я получаю сообщение об ошибке:
The element 'metadata' in namespace 'http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd'
has invalid child elment 'icon' in namespace 'http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd'.
List of possible elements expected : 'contentFiles, desription, licenseUrl, projectUrl, language,
releaseNotes, frameworkAssemblies, summary, iconUrl, packageTypes, dependencies, copyright,
developmentDependency, repositoru, tags, references, title, serviceable' in namespace
'http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd'.
(так что кажется, что сгенерированный встроенный nuspec имеет неправильное пространство имен xml - я понятия не имею, как заставить его генерировать новое пространство имен) Это Catch-22. Таким образом, кажется, что единственный вариант - оставить иконку вне.
(у меня также есть Visual Studio 2019 и недавно установленный .net core 3.0.100 SDK)