Я ошибаюсь?
Это свойство GeneratePackageOnBuild
не относится к .net framework
проектам. Создайте новый проект библиотеки классов .net Standard
или .net Core
, щелкните правой кнопкой мыши проект, и вы увидите команду Pack (недоступно для .net framework).
Если мы нажмем кнопку, VS упакует эту сборку в пакет nuget. И если кто-то не хочет нажимать эту кнопку каждый раз вручную, перейдите на Project=>Properties=>Package
и мы увидим флажок Generate Nuget Packages on build
. Включите его, и тогда пакет nuget будет создаваться после каждой сборки.
На самом деле, включение этого флажка в VS добавит оператор <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
в xx.csproj, но кнопка Pack или Package на вкладке Project=>Properties
недоступныдля .net Framework проектов.
Так что, боюсь, ответ отрицательный, вы не должны использовать это свойство для проектов .net framework. (Я тестировал это свойство в VS2017 и VS2019, все это просто ничего не делало, не могу воспроизвестичастичная работа, упомянутая в вашем вопросе)
Есть ли простой способ сделать это из Visual Studio?
Вам нужно использовать команду nuget pack
, чтобы сделать это, как говорит Lex Li . И чтобы сделать это в VS автоматически, вы можете подумать о настройке этой команды в Post-Build-Event или использовании пользовательской цели после сборки для запуска этой команды.
Так как вам нужны эти пакеты NuGetавтоматически упаковать из Visual Studio во время сборки выпуска. Вы можете попробовать добавить этот скрипт в ваш xx.csproj
файл:
<Target Name="CustomPack" AfterTargets="build" Condition="'$(Configuration)'=='Release'">
<Message Text="Custom Pack command starts ..." Importance="high"/>
<Exec Command="nuget pack $(MSBuildProjectFile) -Properties Configuration=Release"/>
</Target>
Чтобы успешно запустить этот скрипт, вам нужно скачать nuget.exe и добавить его путь к Переменные среды . Или используйте полный путь, например "C:\SomePath\Nuget.exe" pack ...
Если сборка в режиме выпуска завершится успешно, вы увидите файл xx.nupkg
в папке проекта.
Кроме того:
1.Для получения более подробной информации о команде nuget pack
см. этот документ .
2. И не забудьте создать файл xx.nuspec
в проектепапка, чтобы избежать появления предупреждений типа NU5115 (xxx не был указан). Подобную проблему смотрите здесь .