Здравствуйте, я использую сценарий bash, чтобы получить папку publish
из источника и поместить ее в папку другого приложения.
Проблема в том, что пока я использую dotnet publish
, папка publish
создается только для сборки Debug
.
Даже с моим проектом в наборе сборки Release
команда dotnet
генерирует для Debug
. Что я делаю не так?
Bash скрипт
releasepath = "D:\Work\redius\core\redius\bin\Release\netcoreapp2.1\publish"
destpath = "D:\dotpeek"
rediuspath = "D:\Work\redius"
curDir = "$(pwd)\out.txt"
if [ ! -f curDir ];
then
touch $curDir
fi
echo $releasepath
rm -rf $destpath
mkdir $destpath
(cd $rediuspath && dotnet publish | $curDir && echo "done publishing")
echo "Copying from : ${releasepath} to ${destpath}"
cp -rf releasepath destpath
cd
Мне нужна папка для первой строки сценария. Я пробовал использовать publish
из vstudio
, но он создает файл nupkg
.
Вы должны собрать проект с dotnet build -c Release
. Тогда он сможет создавать dll в режиме Release.
Это сработало для меня. Я не получал сборку из Release после публикации. Явная сборка в режиме выпуска решила мою проблему.
dotnet publish
сначала собирает проект, а затем публикует его. По умолчанию используется конфигурация сборки Debug
.
Если вы хотите собрать свой проект с конфигурацией сборки Release
, вы должны указать флаг -c
.
dotnet publish -c Release
https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-publish?tabs=netcore21
Если вам нужно указать дополнительные флаги сборки, вы можете сначала собрать проект, а затем опубликовать его.
dotnet build -c Release
dotnet publish --no-build
Но разве издательство не должно заниматься сборкой? Сборка похожа на публикацию с локальными зависимостями, и я создал проект из Visual Studio.