У меня есть фрагмент текстового шаблона, который генерирует класс Solution
со свойством Assemblies
для вывода списка всех сборок проектов в решении Visual Studio для помощи в настройке контейнера IoC ( GitHub , NuGet ).Это терпит неудачу, когда проекты помещены в папки решения все же.Как сделать папки решений прозрачными для этого скрипта?Проблемный код:
<#+
class SolutionAssemblyNames : IEnumerable<string>
{
public SolutionAssemblyNames(ITextTemplatingEngineHost host)
{
Host = host;
}
public IEnumerator<string> GetEnumerator() => Assemblies.GetEnumerator();
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
IEnumerable<string> Assemblies => Projects
.Select(p => p?.Properties?.Item("AssemblyName")?.Value as string)
.Distinct().Where(a => !string.IsNullOrWhiteSpace(a));
IEnumerable<Project> Projects => VisualStudio.Solution.Projects.OfType<Project>();
DTE VisualStudio => (Host as IServiceProvider).GetService(typeof(DTE)) as DTE;
ITextTemplatingEngineHost Host { get; }
}
#>