Skip to content

Commit 94fb3fe

Browse files
author
Jeremy Spedding
committed
Fix _checkAssemblyVersionAgainstTargetFrameworkVersion logic and also add new copy logic to metaproj creation
1 parent 3af5ec0 commit 94fb3fe

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

src/Build/Construction/Solution/SolutionProjectGenerator.cs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,8 @@ private static void AddTasksToCopyAllDependenciesIntoBinDir(
416416
string conditionDescribingValidConfigurations)
417417
{
418418
string copyLocalFilesItemName = referenceItemName + "_CopyLocalFiles";
419+
string resolvedDependenciesFilesItemName = referenceItemName + "_ResolvedDependencyFiles";
420+
string allDependentFilesItemName = referenceItemName + "_AllDependentFiles";
419421
string targetFrameworkDirectoriesName = GenerateSafePropertyName(project, "_TargetFrameworkDirectories");
420422
string fullFrameworkRefAssyPathName = GenerateSafePropertyName(project, "_FullFrameworkReferenceAssemblyPaths");
421423
string destinationFolder = String.Format(CultureInfo.InvariantCulture, @"$({0})\Bin\", GenerateSafePropertyName(project, "AspNetPhysicalPath"));
@@ -452,14 +454,24 @@ private static void AddTasksToCopyAllDependenciesIntoBinDir(
452454
rarTask.SetParameter("FindRelatedFiles", "true");
453455
rarTask.SetParameter("TargetFrameworkMoniker", project.TargetFrameworkMoniker);
454456
rarTask.AddOutputItem("CopyLocalFiles", copyLocalFilesItemName, null);
457+
rarTask.AddOutputItem("ResolvedDependencyFiles", resolvedDependenciesFilesItemName, null);
455458

456-
// Copy all the copy-local files (reported by RAR) to the web project's "bin"
459+
// Merge copy-local files and resolved dependency files (reported by RAR) together
460+
ProjectTaskInstance mergeCopyLocalToAllDependenciesTask = target.AddTask("CreateItem", null, null);
461+
mergeCopyLocalToAllDependenciesTask.SetParameter("Include", "@(" + copyLocalFilesItemName + ")");
462+
mergeCopyLocalToAllDependenciesTask.AddOutputItem("Include", allDependentFilesItemName, null);
463+
464+
ProjectTaskInstance mergeResolvedDependencyFileslToAllDependenciesTask = target.AddTask("CreateItem", null, null);
465+
mergeResolvedDependencyFileslToAllDependenciesTask.SetParameter("Include", "@(" + resolvedDependenciesFilesItemName + ")");
466+
mergeResolvedDependencyFileslToAllDependenciesTask.AddOutputItem("Include", allDependentFilesItemName, null);
467+
468+
// Copy dependencies to the web project's "bin"
457469
// directory.
458470
ProjectTaskInstance copyTask = target.AddTask("Copy", conditionDescribingValidConfigurations, null);
459-
copyTask.SetParameter("SourceFiles", "@(" + copyLocalFilesItemName + ")");
471+
copyTask.SetParameter("SourceFiles", "@(" + allDependentFilesItemName + ")");
460472
copyTask.SetParameter(
461473
"DestinationFiles",
462-
String.Format(CultureInfo.InvariantCulture, @"@({0}->'{1}%(DestinationSubDirectory)%(Filename)%(Extension)')", copyLocalFilesItemName, destinationFolder));
474+
String.Format(CultureInfo.InvariantCulture, @"@({0}->'{1}%(DestinationSubDirectory)%(Filename)%(Extension)')", allDependentFilesItemName, destinationFolder));
463475
}
464476

465477
/// <summary>

src/Tasks/AssemblyDependency/ReferenceTable.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ internal ReferenceTable(
341341
_enableCustomCulture = enableCustomCulture;
342342

343343
// Set condition for when to check assembly version against the target framework version
344-
_checkAssemblyVersionAgainstTargetFrameworkVersion = unresolveFrameworkAssembliesFromHigherFrameworks || ((_projectTargetFramework ?? ReferenceTable.s_targetFrameworkVersion_40) <= ReferenceTable.s_targetFrameworkVersion_40);
344+
_checkAssemblyVersionAgainstTargetFrameworkVersion = unresolveFrameworkAssembliesFromHigherFrameworks || (_projectTargetFramework != null && (_projectTargetFramework <= s_targetFrameworkVersion_40));
345345

346346
// Convert the list of installed SDK's to a dictionary for faster lookup
347347
_resolvedSDKReferences = new Dictionary<string, ITaskItem>(StringComparer.OrdinalIgnoreCase);

0 commit comments

Comments
 (0)