Запишите информацию о версии Xamarin в консоль или файл.

В настоящее время, чтобы получить информацию о версии Xamarin, нам нужно сделать следующее: Xamarin Studio Xamarin Studio > О Xamarin Studio > Показать подробности > Копировать информацию [кнопка]

Мне нужно иметь эту информацию в файле или писать их в консоли. У нас есть команда сделать это?

Спасибо.


person Anas EL HAJJAJI    schedule 03.11.2017    source источник


Ответы (1)


Чтобы получить версию Visual Studio для Mac:

/usr/libexec/PlistBuddy -c 'print :CFBundleVersion' /Applications/Visual\ Studio.app/Contents/Info.plist

Чтобы получить текущую версию Mono:

mono --version

или вы можете посмотреть, на что ссылается текущая версия:

la /Library/Frameworks/Mono.framework/Versions/Current

Аналогично для платформ Xamarin.iOS и Xamarin.Android:

la /Library/Frameworks/Xamarin.Android.framework/Versions/Current
la /Library/Frameworks/Xamarin.iOS.framework/Versions/Current

EDIT: Если вам нужна только версия из команд la, вы можете добавить к командам постфикс | sed 's/^.*-> //g'. Это заменит все до ->, включая эту стрелку, ничем, поэтому будет отображаться только номер версии. Итак, что-то вроде:

la /Library/Frameworks/Xamarin.iOS.framework/Versions/Current | sed 's/^.*-> //g'

Дал бы 11.4.0.93.

Для Mono.framework это абсолютный путь, поэтому вы можете снова подключиться к sed 's!.*/!!', чтобы просто получить «имя файла»:

la /Library/Frameworks/Mono.framework/Versions/Current | sed 's/^.*-> //g' | sed 's!.*/!!'

ИЗМЕНИТЬ:

Добавляем все это в скрипт:

#!/usr/bin/env bash

mono_version=$(ls -n /Library/Frameworks/Mono.framework/Versions/Current | sed 's/^.*-> //g' | sed 's!.*/!!')
vs_version=$(/usr/libexec/PlistBuddy -c 'print :CFBundleVersion' /Applications/Visual\ Studio.app/Contents/Info.plist)
ios_version=$(ls -n /Library/Frameworks/Xamarin.iOS.framework/Versions/Current | sed 's/^.*-> //g')
android_version=$(ls -n /Library/Frameworks/Xamarin.Android.framework/Versions/Current | sed 's/^.*-> //g')
echo "mono:" $mono_version
echo "vs version:" $vs_version
echo "ios version:" $ios_version
echo "android version:" $android_version

Не забудьте запустить chmod +x для файла .sh. Затем вы можете запустить это с помощью sh version.sh, и он выплюнет:

mono: 5.4.1
vs version: 7.3.0.708
ios version: 11.4.0.93
android version: 8.1.0-21
person Cheesebaron    schedule 03.11.2017
comment
Вы можете просто использовать следующее, чтобы избежать извлечения версий из ls/la вывода: MonoVer=$(< /Library/Frameworks/Mono.framework/Versions/Current/VERSION); echo "Mono: $MonoVer"; XamarinAndroidVer=$(< /Library/Frameworks/Xamarin.Android.framework/Versions/Current/version); echo "Xamarin.Android: $XamarinAndroidVer"; XamariniOSVer=$(< /Library/Frameworks/Xamarin.iOS.framework/Versions/Current/Version); echo "Xamarin.iOS: $XamariniOSVer"; - person RAM237; 08.10.2019