/// <inheritdoc /> public bool Execute() { try { if (!Directory.Exists(DestinationFolder)) { Directory.CreateDirectory(DestinationFolder); } AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += CurrentDomain_ReflectionOnlyAssemblyResolve; LoadDependentAssemblies(SourceAssemblyPath, GetIgnoreFiles()); //load target assembly var assembly = Assembly.ReflectionOnlyLoadFrom(SourceAssemblyPath); var types = GetTypesWithSqlTypeAttribute(assembly); var headerText = GetHeaderText(); foreach (var type in types) { var generatedType = SqlGenerator.GenerateUserType(type.UserType, type.SqlUserTypeAttributeData); var generatedSql = BuildSqlText(generatedType); var targetFile = Path.ChangeExtension(Path.Combine(DestinationFolder, GetSafeFilename(generatedType.TypeName)), "sql"); File.WriteAllText(targetFile, headerText + generatedSql, Encoding.UTF8); } return(true); } catch (ReflectionTypeLoadException exc) { var msg = FaultHelper.GetMessage(exc); BuildEngine.LogErrorEvent(FaultHelper.CreateErrorEvent(FaultHelper.AssemblyLoadError, SourceAssemblyPath, msg)); } catch (Exception exc) { var msg = FaultHelper.GetMessageCore(exc); BuildEngine.LogErrorEvent(FaultHelper.CreateErrorEvent(FaultHelper.GeneralError, SourceAssemblyPath, msg)); } return(false); }