Xamarin.Android版本中缺少Assembly*属性

Xamarin.Android版本中缺少Assembly*属性,xamarin.android,visual-studio-2017,.net-assembly,Xamarin.android,Visual Studio 2017,.net Assembly,my app suite的每个组件都在AssemblyInfo.cs中指定以下内容以识别自身: .. [assembly: AssemblyVersion("MM.nnn.*")] [assembly: AssemblyTitle( "Component Title" )] #if DEBUG [assembly: AssemblyDescription( "<Component>.Debug" )] [assembly: AssemblyConfiguration( "Debug"

my app suite的每个组件都在
AssemblyInfo.cs
中指定以下内容以识别自身:

..
[assembly: AssemblyVersion("MM.nnn.*")]
[assembly: AssemblyTitle( "Component Title" )]
#if DEBUG
[assembly: AssemblyDescription( "<Component>.Debug" )]
[assembly: AssemblyConfiguration( "Debug" )]
#else
[assembly: AssemblyDescription( "<Component>.Release" )]
[assembly: AssemblyConfiguration( "Release" )]
#endif
完整性:

/// <summary>Returns build-date/time, extracted from the version string
    (use on 'MM.nnn.*'-versioned assemblies)</summary>
public static DateTime  GetBuildFromVersion( string sVersion )
{
    DateTime    dB =    new DateTime( 2000, 1, 1 );
    string[]    sa =    sVersion.Split( '.' );

    if(  sa.Length == 4  )
    {
        dB =    dB.AddDays(    Convert.ToInt32( sa[ 2 ] ) );
        dB =    dB.AddSeconds( Convert.ToInt32( sa[ 3 ] ) << 1 );
    }
    return  dB;
}
这在
Debug
build中非常有效。。只给了我一个版本#在<代码>发行版<代码>一个

公开适当的(与所有其他组件相似且可比较的)版本是很好的,我将接受它。

但是
发布版
构建版
中的
程序集*属性
的其余部分会发生什么情况?

类似于从asm.Location获取崩溃的问题。代码在发布版本中的确切位置变得模糊。jtiter使用的一个基本优化是内联代码。将方法的代码移动到方法的调用方。一个对位置敏感的方法,就像任何调用Assembly.GetExecutionGassembly()的方法一样,需要[MethodImpl(MethodImplOptions.NoInLine)]属性,因此不允许将其移动。在某种程度上,我可以看到,
asm.location
存在问题,因为发布版本安装到了Android上一个未知的地方。。尽管如此,它还是放在某个文件夹里——为什么不把它退回呢?那么,JIT如何使属性“可优化可移除”?它们是否被视为调试元数据?为什么不在Windows上的版本中删除它们?
/// <summary>Returns build-date/time, extracted from the version string
    (use on 'MM.nnn.*'-versioned assemblies)</summary>
public static DateTime  GetBuildFromVersion( string sVersion )
{
    DateTime    dB =    new DateTime( 2000, 1, 1 );
    string[]    sa =    sVersion.Split( '.' );

    if(  sa.Length == 4  )
    {
        dB =    dB.AddDays(    Convert.ToInt32( sa[ 2 ] ) );
        dB =    dB.AddSeconds( Convert.ToInt32( sa[ 3 ] ) << 1 );
    }
    return  dB;
}
string  sVersion =  asm.GetName( ).Version.ToString( ),
        sFileDsc =  string.Empty,
        sComment =  string.Empty;

foreach(  Attribute attr in asm.GetCustomAttributes( true )  )
{
    if(  attr.GetType( ) == typeof(AssemblyTitleAttribute)  )
        sFileDsc =      ((AssemblyTitleAttribute)attr).Title;
    else
    if(  attr.GetType( ) == typeof(AssemblyDescriptionAttribute)  )
        sComment =      ((AssemblyDescriptionAttribute)attr).Description;
}

Utils.sModInfo =    string.Format( Utils.scFmtModId, sFileDsc, sComment,
                        sVersion, Utils.GetBuildFromVersion( sVersion ) );