Programmatically getting the GUID of an application
Well, there isn't much to say here. But I still see some stuff I don't really like.  

The implementations of Lazy&lt;Guid&gt; _MyGuid and Guid GetMyGuid() are quite simple and easy to read and understand. What bothers me here is that for the variable, and both methods the documentation is almost the same. But, at least for me, more critical is the documentation of Guid GetMyGuid() which states "Lazily gets ..." which is clearly an implementation detail which I wouldn't show.  

The method Guid GetGuid() is another thing. IMO its very hard to read and understand by sprawling the Guid.TryParse() over 3 lines.   

The change I will suggest is a little bit longer but its more readable, at least for me  

public static Guid GetGuid(this Assembly assembly)
{
    var guidAttribute = (GuidAttribute)assembly?.GetCustomAttributes(typeof(GuidAttribute), false).SingleOrDefault();
    if(Guid.TryParse(guidAttribute?.Value, out Guid guid)) { return guid; }
    return Guid.Empty;
}  


which could also be written like so  

public static Guid GetGuid(this Assembly assembly)
{
    var guidAttribute = (GuidAttribute)assembly?.GetCustomAttributes(typeof(GuidAttribute), false).SingleOrDefault();
    Guid.TryParse(guidAttribute?.Value, out Guid guid); // If Guid.TryParse returns false the out Guid is Guid.Empty
    return guid;
}