Лямбда-пакет dotnet (и, по расширению, это может применяться к любой другой команде dotnet-lambda, которая запускает dotnet publish
под капотом) может выиграть от опции --no-restore
, которая будет передана в dotnet publish
команда.
Начиная с версии 2.0, команды build
и publish
неявно запускают restore
, поэтому команда dotnet добавила флаг - no-restore
для сценариев, в которых вы не хотите неявное восстановление. Это действительно важная функция для сценариев CI, когда мы восстанавливаем из внутреннего репозитория Nuget и должны иметь контроль над источниками пакетов во время сборки. Типичная CI-сборка в этом сценарии будет выглядеть так:
dotnet restore -s https://private-nuget-repository.myorg.com
dotnet lambda package --no-restore
В версии 2.1.0 Amazon.Lambda.Tools
вы можете использовать переключатель --msbuild-parameters
для передачи аргументов команде dotnet publish
. Так что ты можешь бежать
dotnet lambda package --msbuild-parameters "--no-restore"
@normj спасибо за информацию! Было ли это где-нибудь задокументировано? Поскольку я действительно пытался найти разные варианты, которые были доступны, но я не нашел ничего в справке CLI или в файлах readme этого репозитория, поэтому я хотел бы знать, пропустил ли я что-то полностью или это возможность улучшить документация.
Это было сделано совсем недавно для другой проблемы с GitHub. https://github.com/aws/aws-lambda-dotnet/issues/210
Если вы сделаете dotnet lambda help package
вы увидите переключатель
> dotnet lambda help package
AWS Lambda Tools for .NET Core functions (2.1.1)
Project Home: https://github.com/aws/aws-lambda-dotnet
package:
Command to package a Lambda project into a zip file ready for deployment
dotnet lambda package [arguments] [options]
Arguments:
<ZIP-FILE> The name of the zip file to package the project into
Options:
-pl | --project-location The location of the project, if not set the current directory will be assumed
-c | --configuration Configuration to build with, for example Release or Debug (Default Value: Release)
-f | --framework Target framework to compile, for example netcoreapp2.0 (Default Value: netcoreapp2.0)
--msbuild-parameters Additional msbuild parameters passed to the 'dotnet publish' command
-o | --output-package The output zip file name
-dvc | --disable-version-check Disable the .NET Core version check. Only for advanced usage.
C:\temp\NoPublish\src\NoPublish
>
По общему признанию, он был добавлен для передачи параметров msbuild, но переключатель --no-restore
работает. Может, мне следовало назвать это как-нибудь по-другому.
Еще одна вещь, за которой следует следить, - это RELEASE.CHANGELOG.md, который вы можете увидеть в выпуске на прошлой неделе, когда был представлен переключатель.
@normj ах ты спасатель.
Следует обновить документацию, чтобы указать, как должен создаваться аргумент параметра сборки. Я не ставил кавычки вокруг себя и не знал, почему он терпит неудачу. На веб-сайте AWS нет документации, и я не был уверен в помощи инструмента. Решение было найдено здесь.
Хороший призыв напоминать людям цитировать ценность.
Самый полезный комментарий
В версии 2.1.0
Amazon.Lambda.Tools
вы можете использовать переключатель--msbuild-parameters
для передачи аргументов командеdotnet publish
. Так что ты можешь бежать