2014-09-04 70 views
4

Xamarin documentation on Environment Checks,对于iOS,我可以通过访问MonoTouch.Constants.Version来检查Xamarin的版本。查看版本的Xamarin.Android以编程方式

是否有Xamarin.Android的等价物?我想为此进行记录。

+0

克里斯,我已经重做了我的答案,以显示我们如何访问Xamarin.Android的版本。这是我的团队几个月前必须解决的一个问题,我认为它现在应该回答您最初的问题。 – matthewrdev 2015-03-19 21:43:22

回答

2

我们已经通过使用*.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#>"; 
    } 
} 

在文件的属性,设置Custom Tool属性到TextTemplatingFileGenerator。这将执行t4模板预编译并生成一个静态类,其中包含应用程序构建的Xamarin.Android版本。