Удалить пакет с помощью скрипта в формах xamarin - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть скрипт сборки сборки (MyBuild.sh), настроенный для создания Android-apk для приложения форм xamarin.

Мое требование: когда я даю внутренние тестовые сборки, я хочу, чтобы Microsoft AppShash и аналитика в проекте ломали сборки, но когда я беру PROD-сборки, я не хочу, чтобы Microsoft Microsoft Center вылетала и аналитика в проекте

поэтому в скрипте сборки я проверяю, является ли это сборкой PROD, и пытался удалить пакеты центра приложений из csproj.

if [ $Env == 'PROD' ]
then
    dotnet remove ./Sample/Sample.csproj package Microsoft.AppCenter.Analytics
    dotnet remove ./Droid/Sample.Droid.csproj package Microsoft.AppCenter.Crashes
fi

Моя проблема в том, что когда скрипт выполняется, он корректно удаляет пакет из общего кода, но не из Droid.csproj, и при попытке удалить пакет, который он выбрасывает

info : Removing PackageReference for package 'Microsoft.AppCenter.Crashes' from project './Droid/Sample.Droid.csproj'.
error: The imported project "/usr/local/share/dotnet/sdk/2.1.4/Xamarin/Android/Xamarin.Android.CSharp.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.  /Users/george.thomas/Documents/Nov/Candidate/Droid/Sample.Droid.csproj

Теперь, если я удаляю MSBuildExtensionsPath из Droid.csproj и запускаю скрипт, он корректно удаляет пакеты, но проект не может быть собран метание The target "Build" does not exist in the project

<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
...