diff --git a/build/RuntimeStore.targets b/build/RuntimeStore.targets index b99613bebf..5fc3b44466 100644 --- a/build/RuntimeStore.targets +++ b/build/RuntimeStore.targets @@ -176,7 +176,7 @@ @@ -185,7 +185,8 @@ + PackageArtifacts="@(PackageArtifact)" + ExternalDependencies="@(ExternalDependency)"> diff --git a/build/tasks/ResolveHostingStartupPackages.cs b/build/tasks/ResolveHostingStartupPackages.cs index 8bfc27399c..5a97097db4 100644 --- a/build/tasks/ResolveHostingStartupPackages.cs +++ b/build/tasks/ResolveHostingStartupPackages.cs @@ -15,6 +15,9 @@ namespace RepoTasks [Required] public ITaskItem[] PackageArtifacts { get; set; } + [Required] + public ITaskItem[] ExternalDependencies { get; set; } + [Output] public ITaskItem[] HostingStartupArtifacts { get; set; } @@ -22,7 +25,18 @@ namespace RepoTasks { // Parse input var hostingStartupArtifacts = PackageArtifacts.Where(p => p.GetMetadata("HostingStartup") == "true"); - HostingStartupArtifacts = BuildArtifacts.Where(p => hostingStartupArtifacts.Any(h => h.GetMetadata("Identity") == p.GetMetadata("PackageId"))).ToArray(); + var externalHostingStartupArtifacts = ExternalDependencies.Where(p => p.GetMetadata("HostingStartup") == "true"); + + var hostingStartups = BuildArtifacts.Where(p => hostingStartupArtifacts.Any(h => h.GetMetadata("Identity") == p.GetMetadata("PackageId"))); + + foreach (var externalHostingStartup in externalHostingStartupArtifacts) + { + // The parameters PackageId and Version are required for output. For external dependencies, the identity is the pacakge id. + externalHostingStartup.SetMetadata("PackageId", externalHostingStartup.GetMetadata("Identity")); + hostingStartups = hostingStartups.Append(externalHostingStartup); + } + + HostingStartupArtifacts = hostingStartups.ToArray(); return true; } diff --git a/build/tools/templates/HostingStartup/HostingStartup.csproj b/build/tools/templates/HostingStartup/HostingStartup.csproj index 5c165b8f0e..12cdf93eb1 100644 --- a/build/tools/templates/HostingStartup/HostingStartup.csproj +++ b/build/tools/templates/HostingStartup/HostingStartup.csproj @@ -26,6 +26,6 @@ $(DepsOutputPath)\$(HostingStartupPackageName)\shared\Microsoft.NETCore.App\$(DepsRuntimeFrameworkVersion)\$(HostingStartupPackageName).deps.json - +