diff options
author | Zhi Li <zhili128@outlook.com> | 2017-02-22 01:21:20 +0300 |
---|---|---|
committer | Tom Meschter <tomescht@microsoft.com> | 2017-03-20 21:28:54 +0300 |
commit | 42b97d978be258bbf915e56bb69747bc8956a3af (patch) | |
tree | 9b7a1b21262b4f7db69b9058f959a8f2d491ce97 | |
parent | 5a8c149e9b88a975e6311b024d0ecdf5994673ab (diff) |
removed xproj project reference
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 { - /// "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": ".NETFram [rest of string was truncated]";. - /// </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 '{0}' 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'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> |