Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/NuGet.BuildTasks.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhi Li <zhili128@outlook.com>2017-02-22 01:21:20 +0300
committerTom Meschter <tomescht@microsoft.com>2017-03-20 21:28:54 +0300
commit42b97d978be258bbf915e56bb69747bc8956a3af (patch)
tree9b7a1b21262b4f7db69b9058f959a8f2d491ce97
parent5a8c149e9b88a975e6311b024d0ecdf5994673ab (diff)
removed xproj project reference
-rw-r--r--src/Microsoft.NuGet.Build.Tasks.Tests/Microsoft.NuGet.Build.Tasks.Tests.csproj1
-rw-r--r--src/Microsoft.NuGet.Build.Tasks.Tests/NuGetTestHelpers.cs2
-rw-r--r--src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/LockFileWithXProjReference.json41
-rw-r--r--src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/ProjectReferenceTests.cs39
-rw-r--r--src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/Resources.Designer.cs28
-rw-r--r--src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/Resources.resx3
-rw-r--r--src/Microsoft.NuGet.Build.Tasks/Microsoft.NuGet.targets20
-rw-r--r--src/Microsoft.NuGet.Build.Tasks/NuGetPackageObject.cs4
-rw-r--r--src/Microsoft.NuGet.Build.Tasks/ResolveNuGetPackageAssets.cs58
-rw-r--r--src/Microsoft.NuGet.Build.Tasks/Strings.Designer.cs9
-rw-r--r--src/Microsoft.NuGet.Build.Tasks/Strings.resx3
11 files changed, 5 insertions, 203 deletions
diff --git a/src/Microsoft.NuGet.Build.Tasks.Tests/Microsoft.NuGet.Build.Tasks.Tests.csproj b/src/Microsoft.NuGet.Build.Tasks.Tests/Microsoft.NuGet.Build.Tasks.Tests.csproj
index bc77c93..2f0c78e 100644
--- a/src/Microsoft.NuGet.Build.Tasks.Tests/Microsoft.NuGet.Build.Tasks.Tests.csproj
+++ b/src/Microsoft.NuGet.Build.Tasks.Tests/Microsoft.NuGet.Build.Tasks.Tests.csproj
@@ -86,7 +86,6 @@
<None Include="Json\Win10.xunit.json" />
<None Include="project.json" />
<None Include="ProjectReferences\LockFileMissingMSBuildProjectThatProvidesAssets.json" />
- <None Include="ProjectReferences\LockFileWithXProjReference.json" />
<None Include="ProjectReferences\LockFileWithCSProjReference.json" />
</ItemGroup>
<ItemGroup>
diff --git a/src/Microsoft.NuGet.Build.Tasks.Tests/NuGetTestHelpers.cs b/src/Microsoft.NuGet.Build.Tasks.Tests/NuGetTestHelpers.cs
index 690a64d..f31e9d0 100644
--- a/src/Microsoft.NuGet.Build.Tasks.Tests/NuGetTestHelpers.cs
+++ b/src/Microsoft.NuGet.Build.Tasks.Tests/NuGetTestHelpers.cs
@@ -26,7 +26,6 @@ namespace Microsoft.NuGet.Build.Tasks.Tests
TryGetRuntimeVersion tryGetRuntimeVersion = null,
bool includeFrameworkReferences = true,
string projectJsonFileContents = null,
- IEnumerable<ITaskItem> projectReferencesCreatingPackages = null,
bool createTemporaryFolderForPackages = true)
{
var rootDirectory = new TempRoot();
@@ -79,7 +78,6 @@ namespace Microsoft.NuGet.Build.Tasks.Tests
task.IncludeFrameworkReferences = includeFrameworkReferences;
task.NuGetPackagesDirectory = packagesDirectory?.Path;
task.RuntimeIdentifier = runtimeIdentifier;
- task.ProjectReferencesCreatingPackages = (projectReferencesCreatingPackages ?? Enumerable.Empty<ITaskItem>()).ToArray();
task.ProjectLockFile = projectLockJsonFile.Path;
task.ProjectLanguage = projectLanguage;
task.TargetMonikers = new ITaskItem[] { new TaskItem(targetMoniker) };
diff --git a/src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/LockFileWithXProjReference.json b/src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/LockFileWithXProjReference.json
deleted file mode 100644
index c4970b6..0000000
--- a/src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/LockFileWithXProjReference.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "locked": false,
- "version": 2,
- "targets": {
- ".NETFramework,Version=v4.5.2": {
- "XProjClassLib/1.0.0": {
- "type": "project",
- "framework": ".NETFramework,Version=v4.5.2",
- "compile": {
- "net452/XProjClassLib.dll": { }
- },
- "runtime": {
- "net452/XProjClassLib.dll": { }
- }
- }
- },
- ".NETFramework,Version=v4.5.2/win": {
- "XProjClassLib/1.0.0": {
- "type": "project",
- "framework": ".NETFramework,Version=v4.5.2",
- "compile": {
- "net452/XProjClassLib.dll": { }
- },
- "runtime": {
- "net452/XProjClassLib.dll": { }
- }
- }
- }
- },
- "libraries": {
- "XProjClassLib/1.0.0": {
- "type": "project",
- "path": "../XProjClassLib/project.json",
- "msbuildProject": "../XProjClassLib/XProjClassLib.xproj"
- }
- },
- "projectFileDependencyGroups": {
- "": [ ],
- ".NETFramework,Version=v4.5.2": [ ]
- }
-} \ No newline at end of file
diff --git a/src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/ProjectReferenceTests.cs b/src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/ProjectReferenceTests.cs
index 3460343..cb87fcc 100644
--- a/src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/ProjectReferenceTests.cs
+++ b/src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/ProjectReferenceTests.cs
@@ -11,45 +11,6 @@ namespace Microsoft.NuGet.Build.Tasks.Tests.ProjectReferences
public class ProjectReferenceTests
{
[Fact]
- public void ProjectReferenceToXProjWithAssetsButNotWithAPathFails()
- {
- var exception = Assert.Throws<ExceptionFromResource>(
- () => NuGetTestHelpers.ResolvePackagesWithJsonFileContents(Resources.LockFileWithXProjReference, ".NETFramework,Version=v4.5.2", "win"));
-
- Assert.Equal(nameof(Strings.MissingProjectReference), exception.ResourceName);
- AssertHelpers.PathEndsWith(@"XProjClassLib\XProjClassLib.xproj", exception.MessageArgs[0]);
- }
-
- [Fact]
- public void ProjectReferenceToProjectWithNoMSBuildProjectFailsGracefully()
- {
- var exception = Assert.Throws<ExceptionFromResource>(
- () => NuGetTestHelpers.ResolvePackagesWithJsonFileContents(Resources.LockFileMissingMSBuildProjectThatProvidesAssets, ".NETFramework,Version=v4.5.2", "win"));
-
- Assert.Equal(nameof(Strings.MissingMSBuildPathInProjectPackage), exception.ResourceName);
- Assert.Equal(@"XProjClassLib", exception.MessageArgs[0]);
- }
-
- [Fact]
- public void ProjectReferenceToXProjWithAssetsAndPathSucceeds()
- {
- var referenceToXProj = new TaskItem(@"..\XProjClassLib\XProjClassLib.xproj");
- referenceToXProj.SetMetadata("OutputBasePath", "XProjOutputDirectory");
-
- var result = NuGetTestHelpers.ResolvePackagesWithJsonFileContents(
- Resources.LockFileWithXProjReference,
- ".NETFramework,Version=v4.5.2",
- "win",
- projectReferencesCreatingPackages: new[] { referenceToXProj });
-
- Assert.Empty(result.Analyzers);
- AssertHelpers.PathEndsWith(@"XProjOutputDirectory\net452\XProjClassLib.dll", result.CopyLocalItems.Single().ItemSpec);
- AssertHelpers.PathEndsWith(@"XProjOutputDirectory\net452\XProjClassLib.dll", result.References.Single().ItemSpec);
- Assert.All(result.References, r => Assert.Equal(ResolveNuGetPackageAssets.NuGetSourceType_Project, r.GetMetadata(ResolveNuGetPackageAssets.NuGetSourceType)));
- Assert.Empty(result.ReferencedPackages);
- }
-
- [Fact]
public void ProjectReferenceToCSProjWithoutAssetsAndNoPathSucceeds()
{
var result = NuGetTestHelpers.ResolvePackagesWithJsonFileContents(Resources.LockFileWithCSProjReference, ".NETFramework,Version=v4.5.2", "win");
diff --git a/src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/Resources.Designer.cs b/src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/Resources.Designer.cs
index a966927..1af74df 100644
--- a/src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/Resources.Designer.cs
+++ b/src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/Resources.Designer.cs
@@ -116,33 +116,5 @@ namespace Microsoft.NuGet.Build.Tasks.Tests.ProjectReferences {
return ResourceManager.GetString("LockFileWithCSProjReference", resourceCulture);
}
}
-
- /// <summary>
- /// Looks up a localized string similar to {
- /// &quot;locked&quot;: false,
- /// &quot;version&quot;: 2,
- /// &quot;targets&quot;: {
- /// &quot;.NETFramework,Version=v4.5.2&quot;: {
- /// &quot;XProjClassLib/1.0.0&quot;: {
- /// &quot;type&quot;: &quot;project&quot;,
- /// &quot;framework&quot;: &quot;.NETFramework,Version=v4.5.2&quot;,
- /// &quot;compile&quot;: {
- /// &quot;net452/XProjClassLib.dll&quot;: { }
- /// },
- /// &quot;runtime&quot;: {
- /// &quot;net452/XProjClassLib.dll&quot;: { }
- /// }
- /// }
- /// },
- /// &quot;.NETFramework,Version=v4.5.2/win&quot;: {
- /// &quot;XProjClassLib/1.0.0&quot;: {
- /// &quot;type&quot;: &quot;project&quot;,
- /// &quot;framework&quot;: &quot;.NETFram [rest of string was truncated]&quot;;.
- /// </summary>
- internal static string LockFileWithXProjReference {
- get {
- return ResourceManager.GetString("LockFileWithXProjReference", resourceCulture);
- }
- }
}
}
diff --git a/src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/Resources.resx b/src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/Resources.resx
index 945ce91..89629ca 100644
--- a/src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/Resources.resx
+++ b/src/Microsoft.NuGet.Build.Tasks.Tests/ProjectReferences/Resources.resx
@@ -124,7 +124,4 @@
<data name="LockFileWithCSProjReference" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>lockfilewithcsprojreference.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
- <data name="LockFileWithXProjReference" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>lockfilewithxprojreference.json;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
- </data>
</root> \ No newline at end of file
diff --git a/src/Microsoft.NuGet.Build.Tasks/Microsoft.NuGet.targets b/src/Microsoft.NuGet.Build.Tasks/Microsoft.NuGet.targets
index f56dfca..fe56d26 100644
--- a/src/Microsoft.NuGet.Build.Tasks/Microsoft.NuGet.targets
+++ b/src/Microsoft.NuGet.Build.Tasks/Microsoft.NuGet.targets
@@ -175,25 +175,6 @@ Copyright (c) .NET Foundation. All rights reserved.
DependsOnTargets="$(ResolveNuGetPackageAssetsDependsOn)"
Condition="'$(ResolveNuGetPackages)' == 'true' and exists('$(ProjectLockFile)')">
- <!-- We need to figure out the output path of any dependent xproj projects -->
- <MSBuild
- Projects="@(_MSBuildProjectReferenceExistent)"
- Targets="GetTargetDir"
- BuildInParallel="$(BuildInParallel)"
- Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration); %(_MSBuildProjectReferenceExistent.SetPlatform)"
- RemoveProperties="%(_MSBuildProjectReferenceExistent.GlobalPropertiesToRemove)"
- Condition="'%(_MSBuildProjectReferenceExistent.Extension)' == '.xproj'">
-
- <Output TaskParameter="TargetOutputs" ItemName="_XProjTargetDirs" />
- </MSBuild>
-
- <!-- The items in _XProjTargetDirs have the target directories as the main itemspecs and the originating project as metadata; reverse them -->
- <ItemGroup>
- <ProjectReferenceCreatingPackage Include="%(_XProjTargetDirs.OriginalItemSpec)">
- <OutputBasePath>%(_XProjTargetDirs.Identity)</OutputBasePath>
- </ProjectReferenceCreatingPackage>
- </ItemGroup>
-
<ResolveNuGetPackageAssets AllowFallbackOnTargetSelection="$(DesignTimeBuild)"
ContinueOnError="$(ContinueOnError)"
IncludeFrameworkReferences="$(IncludeFrameworkReferencesFromNuGet)"
@@ -201,7 +182,6 @@ Copyright (c) .NET Foundation. All rights reserved.
RuntimeIdentifier="$(NuGetRuntimeIdentifier)"
ProjectLanguage="$(Language)"
ProjectLockFile="$(ProjectLockFile)"
- ProjectReferencesCreatingPackages="@(ProjectReferenceCreatingPackage)"
ContentPreprocessorValues="@(NuGetPreprocessorValue)"
ContentPreprocessorOutputDirectory="$(IntermediateOutputPath)\NuGet"
TargetMonikers="$(NuGetTargetMoniker);$(_NuGetTargetFallbackMoniker)">
diff --git a/src/Microsoft.NuGet.Build.Tasks/NuGetPackageObject.cs b/src/Microsoft.NuGet.Build.Tasks/NuGetPackageObject.cs
index b6fb6fc..696db15 100644
--- a/src/Microsoft.NuGet.Build.Tasks/NuGetPackageObject.cs
+++ b/src/Microsoft.NuGet.Build.Tasks/NuGetPackageObject.cs
@@ -23,11 +23,10 @@ namespace Microsoft.NuGet.Build.Tasks
/// </summary>
private readonly Lazy<string> _fullPackagePath;
- public NuGetPackageObject(string id, string version, bool isProject, Func<string> fullPackagePathGenerator, JObject targetObject, JObject libraryObject)
+ public NuGetPackageObject(string id, string version, Func<string> fullPackagePathGenerator, JObject targetObject, JObject libraryObject)
{
Id = id;
Version = version;
- IsProject = isProject;
_fullPackagePath = new Lazy<string>(fullPackagePathGenerator);
TargetObject = targetObject;
LibraryObject = libraryObject;
@@ -35,7 +34,6 @@ namespace Microsoft.NuGet.Build.Tasks
public string Id { get; }
public string Version { get; }
- public bool IsProject { get; }
/// <summary>
/// The JSON object from the "targets" section in the project.lock.json for this package.
diff --git a/src/Microsoft.NuGet.Build.Tasks/ResolveNuGetPackageAssets.cs b/src/Microsoft.NuGet.Build.Tasks/ResolveNuGetPackageAssets.cs
index de16d88..3e12fb0 100644
--- a/src/Microsoft.NuGet.Build.Tasks/ResolveNuGetPackageAssets.cs
+++ b/src/Microsoft.NuGet.Build.Tasks/ResolveNuGetPackageAssets.cs
@@ -23,7 +23,6 @@ namespace Microsoft.NuGet.Build.Tasks
internal const string NuGetPackageVersionMetadata = "NuGetPackageVersion";
internal const string NuGetIsFrameworkReference = "NuGetIsFrameworkReference";
internal const string NuGetSourceType = "NuGetSourceType";
- internal const string NuGetSourceType_Project = "Project";
internal const string NuGetSourceType_Package = "Package";
internal const string ReferenceImplementationMetadata = "Implementation";
@@ -46,8 +45,6 @@ namespace Microsoft.NuGet.Build.Tasks
private readonly List<string> _packageFolders = new List<string>();
- private readonly Dictionary<string, string> _projectReferencesToOutputBasePaths = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
-
#region UnitTestSupport
private readonly FileExists _fileExists = new FileExists(File.Exists);
private readonly TryGetRuntimeVersion _tryGetRuntimeVersion = new TryGetRuntimeVersion(TryGetRuntimeVersion);
@@ -143,15 +140,6 @@ namespace Microsoft.NuGet.Build.Tasks
}
/// <summary>
- /// A list of project references that are creating packages as listed in the lock file. The OutputPath metadata should
- /// set on each of these items, which is used by the task to construct full output paths to assets.
- /// </summary>
- public ITaskItem[] ProjectReferencesCreatingPackages
- {
- get; set;
- }
-
- /// <summary>
/// The base output directory where the temporary, preprocessed files should be written to.
/// </summary>
public string ContentPreprocessorOutputDirectory
@@ -238,7 +226,6 @@ namespace Microsoft.NuGet.Build.Tasks
PopulatePackageFolders(lockFile);
- PopulateProjectReferenceMaps();
GetReferences(lockFile);
GetCopyLocalItems(lockFile);
GetAnalyzers(lockFile);
@@ -281,23 +268,6 @@ namespace Microsoft.NuGet.Build.Tasks
}
}
- private void PopulateProjectReferenceMaps()
- {
- foreach (var projectReference in ProjectReferencesCreatingPackages ?? new ITaskItem[] { })
- {
- var fullPath = GetAbsolutePathFromProjectRelativePath(projectReference.ItemSpec);
- if (_projectReferencesToOutputBasePaths.ContainsKey(fullPath))
- {
- Log.LogWarningFromResources(nameof(Strings.DuplicateProjectReference), fullPath, nameof(ProjectReferencesCreatingPackages));
- }
- else
- {
- var outputPath = projectReference.GetMetadata("OutputBasePath");
- _projectReferencesToOutputBasePaths.Add(fullPath, outputPath);
- }
- }
- }
-
private void GetReferences(JObject lockFile)
{
var target = GetTargetOrAttemptFallback(lockFile, needsRuntimeIdentifier: false);
@@ -820,7 +790,7 @@ namespace Microsoft.NuGet.Build.Tasks
item.SetMetadata("Private", "false");
item.SetMetadata(NuGetIsFrameworkReference, "false");
- item.SetMetadata(NuGetSourceType, package.IsProject ? NuGetSourceType_Project : NuGetSourceType_Package);
+ item.SetMetadata(NuGetSourceType, NuGetSourceType_Package);
items.Add(item);
@@ -939,7 +909,6 @@ namespace Microsoft.NuGet.Build.Tasks
var nameParts = package.Key.Split('/');
var id = nameParts[0];
var version = nameParts[1];
- bool isProject = false;
var libraryObject = (JObject)lockFile["libraries"][package.Key];
@@ -951,35 +920,16 @@ namespace Microsoft.NuGet.Build.Tasks
}
// If this is a project then we need to figure out it's relative output path
- if ((string)libraryObject["type"] == "project")
+ if ("project".Equals((string)libraryObject["type"], StringComparison.OrdinalIgnoreCase))
{
- isProject = true;
-
- fullPackagePathGenerator = () =>
- {
- var relativeMSBuildProjectPath = (string)libraryObject["msbuildProject"];
-
- if (string.IsNullOrEmpty(relativeMSBuildProjectPath))
- {
- throw new ExceptionFromResource(nameof(Strings.MissingMSBuildPathInProjectPackage), id);
- }
-
- var absoluteMSBuildProjectPath = GetAbsolutePathFromProjectRelativePath(relativeMSBuildProjectPath);
- string fullPackagePath;
- if (!_projectReferencesToOutputBasePaths.TryGetValue(absoluteMSBuildProjectPath, out fullPackagePath))
- {
- throw new ExceptionFromResource(nameof(Strings.MissingProjectReference), absoluteMSBuildProjectPath, nameof(ProjectReferencesCreatingPackages));
- }
-
- return fullPackagePath;
- };
+ continue;
}
else
{
fullPackagePathGenerator = () => GetNuGetPackagePath(id, version);
}
- yield return new NuGetPackageObject(id, version, isProject, fullPackagePathGenerator, (JObject)package.Value, libraryObject);
+ yield return new NuGetPackageObject(id, version, fullPackagePathGenerator, (JObject)package.Value, libraryObject);
}
}
diff --git a/src/Microsoft.NuGet.Build.Tasks/Strings.Designer.cs b/src/Microsoft.NuGet.Build.Tasks/Strings.Designer.cs
index 6d71ed9..9b3de63 100644
--- a/src/Microsoft.NuGet.Build.Tasks/Strings.Designer.cs
+++ b/src/Microsoft.NuGet.Build.Tasks/Strings.Designer.cs
@@ -70,15 +70,6 @@ namespace Microsoft.NuGet.Build.Tasks {
}
/// <summary>
- /// Looks up a localized string similar to The project &apos;{0}&apos; was referenced more than once in the {1} property. Ignoring all but the first..
- /// </summary>
- internal static string DuplicateProjectReference {
- get {
- return ResourceManager.GetString("DuplicateProjectReference", resourceCulture);
- }
- }
-
- /// <summary>
/// Looks up a localized string similar to Lock file {0} couldn&apos;t be found. Run a NuGet package restore to generate this file..
/// </summary>
internal static string LockFileNotFound {
diff --git a/src/Microsoft.NuGet.Build.Tasks/Strings.resx b/src/Microsoft.NuGet.Build.Tasks/Strings.resx
index 03a7fd1..16d5d64 100644
--- a/src/Microsoft.NuGet.Build.Tasks/Strings.resx
+++ b/src/Microsoft.NuGet.Build.Tasks/Strings.resx
@@ -120,9 +120,6 @@
<data name="DuplicatePreprocessorToken" xml:space="preserve">
<value>The preprocessor token '{0}' has been given more than one value. Choosing '{1}' as the value.</value>
</data>
- <data name="DuplicateProjectReference" xml:space="preserve">
- <value>The project '{0}' was referenced more than once in the {1} property. Ignoring all but the first.</value>
- </data>
<data name="LockFileNotFound" xml:space="preserve">
<value>Lock file {0} couldn't be found. Run a NuGet package restore to generate this file.</value>
</data>