diff --git a/build/artifacts.props b/build/artifacts.props
index 6c1bad7f21..9fd0624246 100644
--- a/build/artifacts.props
+++ b/build/artifacts.props
@@ -29,7 +29,7 @@
-
+
diff --git a/build/repo.targets b/build/repo.targets
index df1859dd07..bd7246818c 100644
--- a/build/repo.targets
+++ b/build/repo.targets
@@ -93,6 +93,7 @@
<_LineupPackages Include="@(ExternalDependency)" />
<_LineupPackages Include="%(ArtifactInfo.PackageId)" Version="%(ArtifactInfo.Version)" Condition=" '%(ArtifactInfo.ArtifactType)' == 'NuGetPackage' " />
<_LineupPackages Include="Microsoft.AspNetCore.All" Version="$(PackageVersion)" />
+ <_LineupPackages Include="Microsoft.AspNetCore.App" Version="$(PackageVersion)" />
<_RestoreSources Include="$(DotNetAdditionalRestoreSources)" Condition="'$(DotNetAdditionalRestoreSources)' != ''" />
<_RestoreSources Include="$(DependencyPackageDir)" Condition="'$(DependencyPackageDir)' != '' AND Exists('$(DependencyPackageDir)')" />
diff --git a/build/tasks/AddArchiveReferences.cs b/build/tasks/AddArchiveReferences.cs
index 12367cf835..a912e965f7 100644
--- a/build/tasks/AddArchiveReferences.cs
+++ b/build/tasks/AddArchiveReferences.cs
@@ -52,12 +52,31 @@ namespace RepoTasks
foreach (var package in archiveArtifacts)
{
var packageName = package.ItemSpec;
- var packageVersion = string.Equals(packageName, "Microsoft.AspNetCore.All", StringComparison.OrdinalIgnoreCase) ?
- MetaPackageVersion :
- buildArtifacts
- .Single(p => string.Equals(p.PackageInfo.Id, packageName, StringComparison.OrdinalIgnoreCase))
- .PackageInfo.Version.ToString();
+ string packageVersion;
+
+ if (string.Equals(packageName, "Microsoft.AspNetCore.All", StringComparison.OrdinalIgnoreCase)
+ || string.Equals(packageName, "Microsoft.AspNetCore.App", StringComparison.OrdinalIgnoreCase))
+ {
+ packageVersion = MetaPackageVersion;
+ }
+ else
+ {
+ var packageVersionCandidates = buildArtifacts.Where(p => string.Equals(p.PackageInfo.Id, packageName, StringComparison.OrdinalIgnoreCase));
+
+ if (!packageVersionCandidates.Any())
+ {
+ Log.LogError($"Missing Package: {packageName} from artifacts archive.");
+ return false;
+ }
+ else if (packageVersionCandidates.Count() > 1)
+ {
+ Log.LogError($"Duplicate Packages: {packageName} from artifacts archive.");
+ return false;
+ }
+
+ packageVersion = packageVersionCandidates.Single().PackageInfo.Version.ToString();
+ }
Log.LogMessage(MessageImportance.High, $" - Package: {packageName} Version: {packageVersion}");
var packageReferenceElement = xmlDoc.CreateElement("PackageReference");
@@ -83,9 +102,21 @@ namespace RepoTasks
foreach (var package in archiveTools)
{
var packageName = package.ItemSpec;
- var packageVersion = buildArtifacts
- .Single(p => string.Equals(p.PackageInfo.Id, packageName, StringComparison.OrdinalIgnoreCase))
- .PackageInfo.Version.ToString();
+
+ var packageVersionCandidates = buildArtifacts.Where(p => string.Equals(p.PackageInfo.Id, packageName, StringComparison.OrdinalIgnoreCase));
+
+ if (!packageVersionCandidates.Any())
+ {
+ Log.LogError($"Missing Package: {packageName} from tools archive.");
+ return false;
+ }
+ else if (packageVersionCandidates.Count() > 1)
+ {
+ Log.LogError($"Duplicate Packages: {packageName} from tools archive.");
+ return false;
+ }
+
+ var packageVersion = packageVersionCandidates.Single().PackageInfo.Version.ToString();
Log.LogMessage(MessageImportance.High, $" - Tool: {packageName} Version: {packageVersion}");