У меня есть скрипт сборки сборки (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" />