在控制台或文件中写入Xamarin版本信息

时间:2017-11-03 11:40:42

标签: xamarin xamarin-studio visual-studio-mac

目前,要获取Xamarin版本信息,我们需要执行以下操作: Xamarin工作室 Xamarin Studio>关于Xamarin Studio>显示详细信息>复制信息[按钮]

我需要将这些信息放在文件中或在控制台中编写。我们有命令这样做吗?

谢谢。

1 个答案:

答案 0 :(得分:3)

获取Visual Studio for 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

编辑:如果您只需要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