0

IoC コンテナー構成 ( GitHubNuGet )を支援するために、Visual Studio ソリューション内のすべてのプロジェクト アセンブリを一覧表示Solutionするプロパティを持つクラスを生成するテキスト テンプレート スニペットがあります。ただし、プロジェクトがソリューション フォルダーに配置されている場合は失敗します。このスクリプトでソリューション フォルダを透過的にするにはどうすればよいですか? 問題のあるコードは次のとおりです。Assemblies

<#+

    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; }
    }
#>
4

1 に答える 1