以编程方式检查Xamarin.Android的版本

以编程方式检查Xamarin.Android的版本,android,xamarin,xamarin.android,Android,Xamarin,Xamarin.android,从中,对于iOS,我可以通过访问MonoTouch.Constants.version来检查Xamarin的版本 Xamarin.Android是否有一个等价物?我想这样做是为了记录日志。我们通过使用*.tt文件来读取Xamarin.Android版本文件并生成一个包含版本信息的C#类来实现这一点: <#@ template language="C#" #> <#@ output extension=".cs" #> <#@ assembly name="Syste

从中,对于iOS,我可以通过访问
MonoTouch.Constants.version
来检查Xamarin的版本


Xamarin.Android是否有一个等价物?我想这样做是为了记录日志。

我们通过使用
*.tt
文件来读取Xamarin.Android版本文件并生成一个包含版本信息的C#类来实现这一点:

<#@ template language="C#" #>
<#@ output extension=".cs" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Diagnostics" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Collections" #>
<#@ import namespace="System.Collections.Generic" #> 

namespace Versioning
{
    public class XamarinAndroid
    {
    <#

    #if __MonoCS__
        var path = @"/Library/Frameworks/Xamarin.Android.framework/Versions/Current";
    #else
        var path = (Directory.Exists(@"C:\Program Files (x86)"))
                ? @"C:\Program Files (x86)\MSBuild\Xamarin\Android"
                : @"C:\Program Files\MSBuild\Xamarin\Android";
    #endif
        string versionText = "unknown";
        if(Directory.Exists(path)) 
            versionText = File.ReadAllLines(Path.Combine(path, "Version"))[0];
    #>
        public const string Version = "<#=versionText#>";
    }
}

命名空间版本控制
{
公共类xandroid
{
public const string Version=“”;
}
}

在文件属性上,将
自定义工具
属性设置为
文本模板文件生成器
。这将执行t4模板预编译,并生成一个静态类,其中包含应用程序构建所基于的Xamarin.Android版本。

Chris,我重做了我的回答,以显示我们如何访问Xamarin.Android版本。这是我的团队几个月前必须解决的一个问题,我认为它现在应该回答您最初的问题。