From 66d27b5063f18518478dac6ca4b68eba956466f0 Mon Sep 17 00:00:00 2001 From: deepchoudhery Date: Wed, 21 Sep 2022 12:08:59 -0700 Subject: [PATCH] adding target for and carrying over project refs. --- .../VS.Web.CG.Msbuild/ProjectReferenceInformationProvider.cs | 2 +- .../Microsoft.VisualStudio.Web.CodeGeneration.Tools.targets | 1 + src/Scaffolding/VS.Web.CG.Utils/Workspaces/RoslynWorkspace.cs | 2 +- .../VS.Web.CG.Utils/Workspaces/RoslynWorkspaceHelper.cs | 2 +- .../ProjectModel/ProjectContextExtensions.cs | 3 ++- .../ProjectModel/ProjectReferenceInformation.cs | 2 +- 6 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Scaffolding/VS.Web.CG.Msbuild/ProjectReferenceInformationProvider.cs b/src/Scaffolding/VS.Web.CG.Msbuild/ProjectReferenceInformationProvider.cs index e1abb63d3..ed604efe2 100644 --- a/src/Scaffolding/VS.Web.CG.Msbuild/ProjectReferenceInformationProvider.cs +++ b/src/Scaffolding/VS.Web.CG.Msbuild/ProjectReferenceInformationProvider.cs @@ -97,7 +97,7 @@ private static ProjectReferenceInformation GetProjectInformation(Project project { ProjectName = name, AssemblyName = assemblyName, - CompilationItems = compileItems, + CompilationItems = compileItems.ToList(), FullPath = fullPath }; } diff --git a/src/Scaffolding/VS.Web.CG.Msbuild/Target/build/Microsoft.VisualStudio.Web.CodeGeneration.Tools.targets b/src/Scaffolding/VS.Web.CG.Msbuild/Target/build/Microsoft.VisualStudio.Web.CodeGeneration.Tools.targets index 79ccd2da1..2cb131738 100644 --- a/src/Scaffolding/VS.Web.CG.Msbuild/Target/build/Microsoft.VisualStudio.Web.CodeGeneration.Tools.targets +++ b/src/Scaffolding/VS.Web.CG.Msbuild/Target/build/Microsoft.VisualStudio.Web.CodeGeneration.Tools.targets @@ -17,6 +17,7 @@ Outputs the Project Information needed for CodeGeneration to a file. $(EvaluateProjectInfoForCodeGenerationDependsOn); ResolveReferences; + ResolveProjectReferences; diff --git a/src/Scaffolding/VS.Web.CG.Utils/Workspaces/RoslynWorkspace.cs b/src/Scaffolding/VS.Web.CG.Utils/Workspaces/RoslynWorkspace.cs index 06181a523..791c98b3b 100644 --- a/src/Scaffolding/VS.Web.CG.Utils/Workspaces/RoslynWorkspace.cs +++ b/src/Scaffolding/VS.Web.CG.Utils/Workspaces/RoslynWorkspace.cs @@ -33,7 +33,7 @@ public RoslynWorkspace(IProjectContext projectInformation, var id = AddProject(projectInformation, configuration); // Since we have resolved all references, we can directly use them as MetadataReferences. // Trying to get ProjectReferences manually might lead to problems when the projects have circular dependency. - var projReferenceInformation = RoslynWorkspaceHelper.GetProjectReferenceInformation(projectInformation.ProjectReferences); + var projReferenceInformation = projectInformation.ProjectReferenceInformation; if (projReferenceInformation != null && projReferenceInformation.Any()) { diff --git a/src/Scaffolding/VS.Web.CG.Utils/Workspaces/RoslynWorkspaceHelper.cs b/src/Scaffolding/VS.Web.CG.Utils/Workspaces/RoslynWorkspaceHelper.cs index fc42dc6ef..f2ef49ef1 100644 --- a/src/Scaffolding/VS.Web.CG.Utils/Workspaces/RoslynWorkspaceHelper.cs +++ b/src/Scaffolding/VS.Web.CG.Utils/Workspaces/RoslynWorkspaceHelper.cs @@ -50,7 +50,7 @@ internal static ProjectReferenceInformation GetProjectInformation(Project projec { ProjectName = name, AssemblyName = assemblyName, - CompilationItems = compileItems, + CompilationItems = compileItems.ToList(), FullPath = fullPath }; } diff --git a/src/Shared/Microsoft.DotNet.Scaffolding.Shared/ProjectModel/ProjectContextExtensions.cs b/src/Shared/Microsoft.DotNet.Scaffolding.Shared/ProjectModel/ProjectContextExtensions.cs index aa6e95d27..57ac8e8a4 100644 --- a/src/Shared/Microsoft.DotNet.Scaffolding.Shared/ProjectModel/ProjectContextExtensions.cs +++ b/src/Shared/Microsoft.DotNet.Scaffolding.Shared/ProjectModel/ProjectContextExtensions.cs @@ -58,7 +58,8 @@ public static IProjectContext AddPackageDependencies(this IProjectContext projec TargetFramework = projectInformation.TargetFramework, TargetFrameworkMoniker = projectInformation.TargetFrameworkMoniker, GeneratedImplicitNamespaceImportFile = projectInformation.GeneratedImplicitNamespaceImportFile, - Nullable = projectInformation.Nullable + Nullable = projectInformation.Nullable, + ProjectReferenceInformation = projectInformation.ProjectReferenceInformation }; return newProjectContext; } diff --git a/src/Shared/Microsoft.DotNet.Scaffolding.Shared/ProjectModel/ProjectReferenceInformation.cs b/src/Shared/Microsoft.DotNet.Scaffolding.Shared/ProjectModel/ProjectReferenceInformation.cs index 8e92fcab4..7f6413f8f 100644 --- a/src/Shared/Microsoft.DotNet.Scaffolding.Shared/ProjectModel/ProjectReferenceInformation.cs +++ b/src/Shared/Microsoft.DotNet.Scaffolding.Shared/ProjectModel/ProjectReferenceInformation.cs @@ -29,6 +29,6 @@ public class ProjectReferenceInformation /// Items included in the project reference for compilation /// <Compile Include="" /> /// - public IEnumerable CompilationItems { get; set; } + public List CompilationItems { get; set; } } }