У меня есть проект, который создает пакет NuGet непосредственно в Visual Studio, установив следующий параметр в файле CSPROJ:
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
Это приводит к тому, что сгенерированный пакет включает все встроенные файлы ресурсов, которые были помечены как «копировать в выходной каталог = не копировать».
К сожалению, автоматический упаковщик Visual Studio предпочитает всегда копировать эти файлы в пакет NuGet, несмотря ни на что.
Чтобы решить эту проблему, я пытался отредактировать файл .NUSPEC и использовать NUGET.EXE из командной строки для создания пакета.
Тогда я столкнулся с новой проблемой. Используя NUGET.EXE вместо Visual Studio, сгенерированный пакет показывает раздел зависимостей как «неподдерживаемый», что я вижу, открыв пакет в «NuGet Explorer»:
Вот файл .bat для создания пакета:
c:\nuget\nuget.exe config -Set repositoryPath="%USERPROFILE%\.nuget\packages"
c:\nuget\nuget.exe pack -IncludeReferencedProjects -properties Configuration=Release
А вот файл NUSPEC:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Integrative.Lara</id>
<version>0.5.3</version>
<authors>Pablo Carbonell, Integrative Software LLC</authors>
<owners>Pablo Carbonell, Integrative Software LLC</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<projectUrl>https://github.com/integrativesoft/lara</projectUrl>
<iconUrl>https://integrative.b-cdn.net/Integrative.ico</iconUrl>
<description>Lara is ...</description>
<copyright>Copyright (c) 2019 Integrative Software LLC</copyright>
<tags>lara, web, html, html5, desktop, gui, cross, framework, mac, osx, platform, ui, blazor, razor</tags>
<repository url="https://github.com/integrativesoft/lara" />
<dependencies>
<group targetFramework=".NETStandard2.0">
<dependency id="Microsoft.AspNetCore" version="2.2.0" exclude="Build,Analyzers" />
<dependency id="Microsoft.AspNetCore.WebSockets" version="2.2.1" exclude="Build,Analyzers" />
</group>
</dependencies>
</metadata>
</package>
Есть ли способ исправить «неподдерживаемую» цель? Я пытался использовать также «netstandard2.0» и другие идентификаторы, и все равно получаю то же самое «неподдерживаемый».
В качестве альтернативы есть ли способ использовать автоматическое создание пакета Visual Studio и предотвратить включение файлов в пакет?