Вот мое улучшенное решение ответа Бруно Броноски с использованием переменных массивов.
позволяет вам смешивать положение параметров и давать вам массив параметров, сохраняющий порядок без опций
#!/bin/bash
echo $@
PARAMS=()
SOFT=0
SKIP=()
for i in "$@"
do
case $i in
-n=*|--skip=*)
SKIP+=("${i#*=}")
;;
-s|--soft)
SOFT=1
;;
*)
# unknown option
PARAMS+=("$i")
;;
esac
done
echo "SKIP = ${SKIP[@]}"
echo "SOFT = $SOFT"
echo "Parameters:"
echo ${PARAMS[@]}
Будет выводиться, например:
$ ./test.sh parameter -s somefile --skip=.c --skip=.obj
parameter -s somefile --skip=.c --skip=.obj
SKIP = .c .obj
SOFT = 1
Parameters:
parameter somefile
Обычно ошибка « Обнаружен конфликт версий » происходит из-за того, что с версиями графа зависимостей что-то не так.
ошибка: обнаружен конфликт версий для Microsoft.EntityFrameworkCore. Установите / обратитесь к Microsoft.EntityFrameworkCore 2.2.3 напрямую в core-udemy проекта, чтобы решить эту проблему.
ошибка: core-udemy -> Microsoft.EntityFrameworkCore.SqlServer 2.2.3 -> Microsoft.EntityFrameworkCore.Relational 2.2.3 -> Microsoft.EntityFrameworkCore (> = 2.2.3)
ошибка : core-udemy -> Microsoft.AspNetCore.App 2.1.1 -> Microsoft.EntityFrameworkCore (> = 2.1.1 & amp; < 2.2.0) .
] blockquote>
Как описывает информация, ваш проект зависит от
Microsoft.AspNetCore.App v2.1.1
, для которого требуется версияMicrosoft.EntityFrameworkCore
(2.1.1 & amp; < 2.2. 0) [1 138].Однако, используя
dotnet add core-udemy package Microsoft.EntityFrameworkCore.SqlServer
, вы устанавливаете «текущую» версиюMicrosoft.EntityFrameworkCore
. Следующий снимок экрана с NuGet показывает, что вы устанавливаетеMicrosoft.EntityFrameworkCore
(2.2.3) :Поскольку вы используете
ASP.NET Core 2.1
, , вы можете установить соответствующие пакеты с опцией--version 2.1.*
:dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 2.1.*
] Это приведет к зависимости, как показано ниже:
<ItemGroup> ... <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.*" /> </ItemGroup>
Как только вы исправите конфликт версий, вы можете запустить
dotnet clean
& amp;dotnet restore
& amp;dotnet build
, и тогда второй вопрос будет решен.
Кроме того, метапакет
Microsoft.AspNetCore.App
(v2.1.1) уже установил зависимость отMicrosoft.EntityFrameworkCore.SqlServer (>= 2.1.1 && < 2.2.0)
:вам не нужно добавлять такую ссылку на пакет вручную.