| 
					
				 | 
			
			
				@@ -140,6 +140,37 @@ namespace MediaBrowser.Common.Plugins 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ApplicationPaths = applicationPaths; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             XmlSerializer = xmlSerializer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (this is IPluginAssembly assemblyPlugin) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var assembly = GetType().Assembly; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var assemblyName = assembly.GetName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var assemblyFilePath = assembly.Location; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var dataFolderPath = Path.Combine(ApplicationPaths.PluginsPath, Path.GetFileNameWithoutExtension(assemblyFilePath)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                assemblyPlugin.SetAttributes(assemblyFilePath, dataFolderPath, assemblyName.Version); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var idAttributes = assembly.GetCustomAttributes(typeof(GuidAttribute), true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (idAttributes.Length > 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var attribute = (GuidAttribute)idAttributes[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        var assemblyId = new Guid(attribute.Value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        assemblyPlugin.SetId(assemblyId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                catch (Exception ex) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Logger.LogError(ex, "Error getting plugin Id from {PluginName}.", plugin.GetType().FullName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (this is IHasPluginConfiguration hasPluginConfiguration) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                hasPluginConfiguration.SetStartupInfo(s => Directory.CreateDirectory(s)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// <summary> 
			 |