diff options
author | Matt Ward <matt.ward@xamarin.com> | 2017-05-24 16:53:24 +0300 |
---|---|---|
committer | Matt Ward <matt.ward@xamarin.com> | 2017-05-24 18:21:15 +0300 |
commit | 1402026d9f254b78c6ced41f58e36ff0c140ba70 (patch) | |
tree | e064a79d304d43b71751afe5fa41dfc905d3e28f /main/src/addins/MonoDevelop.Packaging | |
parent | dd7cc3ae2c77b3068493572e36789e69e3caf0dd (diff) |
[Packaging] Fix no packages shown in Packages folder
Opening a previously created NuGet packaging project would show no
packages in the Packages folder. The problem was that the
PackageReference project item is exported by both the NuGet addin and
the Packaging addin. The NuGet addin's PackageReference project item
was used instead of the one defined by the Packaging addin so no
package references were available for the packaging project. Now only
one PackageReference project item type is exported and the packaging
project uses the one defined by the NuGet addin.
Diffstat (limited to 'main/src/addins/MonoDevelop.Packaging')
-rw-r--r-- | main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging.csproj | 2 | ||||
-rw-r--r-- | main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackageReferenceCollection.cs | 3 | ||||
-rw-r--r-- | main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackagingNuGetProject.cs | 10 | ||||
-rw-r--r-- | main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackagingProject.cs | 8 | ||||
-rw-r--r-- | main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/ProjectPackageReferenceExtensions.cs (renamed from main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackageReference.cs) | 36 |
5 files changed, 20 insertions, 39 deletions
diff --git a/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging.csproj b/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging.csproj index b6fc5f5f3c..44bed848ff 100644 --- a/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging.csproj +++ b/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging.csproj @@ -91,7 +91,6 @@ <Compile Include="MonoDevelop.Packaging\NuGetFilePropertyProvider.cs" /> <Compile Include="MonoDevelop.Packaging\NuGetFileDescriptor.cs" /> <Compile Include="MonoDevelop.Packaging\PackagingNuGetProject.cs" /> - <Compile Include="MonoDevelop.Packaging\PackageReference.cs" /> <Compile Include="MonoDevelop.Packaging\PackageReferenceCollection.cs" /> <Compile Include="MonoDevelop.Packaging\AddPlatformImplementationHandler.cs" /> <Compile Include="MonoDevelop.Packaging.Gui\AddPlatformImplementationDialog.cs" /> @@ -121,6 +120,7 @@ </Compile> <Compile Include="MonoDevelop.Packaging.OptionPanels\ProjectNuGetBuildOptionsPanel.cs" /> <Compile Include="MonoDevelop.Packaging\ProjectIsDotNetProjectOnlyCondition.cs" /> + <Compile Include="MonoDevelop.Packaging\ProjectPackageReferenceExtensions.cs" /> </ItemGroup> <ItemGroup> <InternalsVisibleTo Include="MonoDevelop.Packaging.Tests" /> diff --git a/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackageReferenceCollection.cs b/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackageReferenceCollection.cs index f3262a7bc0..d8f852623e 100644 --- a/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackageReferenceCollection.cs +++ b/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackageReferenceCollection.cs @@ -25,12 +25,13 @@ // THE SOFTWARE. using System; +using MonoDevelop.PackageManagement; using MonoDevelop.Projects; namespace MonoDevelop.Packaging { [Serializable] - class PackageReferenceCollection : ProjectItemCollection<PackageReference> + class PackageReferenceCollection : ProjectItemCollection<ProjectPackageReference> { } } diff --git a/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackagingNuGetProject.cs b/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackagingNuGetProject.cs index d1b707234b..6e75e6d494 100644 --- a/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackagingNuGetProject.cs +++ b/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackagingNuGetProject.cs @@ -74,7 +74,7 @@ namespace MonoDevelop.Packaging return await Runtime.RunInMainThread (async () => { // Check if this NuGet package is already installed and should be removed. - PackageReference existingPackageReference = project.FindPackageReference (packageIdentity); + ProjectPackageReference existingPackageReference = project.FindPackageReference (packageIdentity); if (existingPackageReference != null) { if (ShouldRemoveExistingPackageReference (existingPackageReference, packageIdentity)) { project.PackageReferences.Remove (existingPackageReference); @@ -94,9 +94,9 @@ namespace MonoDevelop.Packaging GenerateNuGetBuildPackagingTargets (packageIdentity); } - var packageReference = new PackageReference (packageIdentity); + var packageReference = ProjectPackageReference.Create (packageIdentity); if (developmentDependency) - packageReference.PrivateAssets = "All"; + packageReference.Metadata.SetValue ("PrivateAssets", "All"); project.PackageReferences.Add (packageReference); await SaveProject (); return true; @@ -109,7 +109,7 @@ namespace MonoDevelop.Packaging CancellationToken token) { return await Runtime.RunInMainThread (() => { - PackageReference packageReference = project.FindPackageReference (packageIdentity); + ProjectPackageReference packageReference = project.FindPackageReference (packageIdentity); if (packageReference != null) { project.PackageReferences.Remove (packageReference); SaveProject (); @@ -122,7 +122,7 @@ namespace MonoDevelop.Packaging /// If the package version is already installed then there is no need to install the /// NuGet package. /// </summary> - bool ShouldRemoveExistingPackageReference (PackageReference packageReference, PackageIdentity packageIdentity) + bool ShouldRemoveExistingPackageReference (ProjectPackageReference packageReference, PackageIdentity packageIdentity) { var existingPackageReference = packageReference.ToNuGetPackageReference (); return !VersionComparer.Default.Equals (existingPackageReference.PackageIdentity.Version, packageIdentity.Version); diff --git a/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackagingProject.cs b/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackagingProject.cs index 86291d6fd8..35f95c483c 100644 --- a/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackagingProject.cs +++ b/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackagingProject.cs @@ -275,12 +275,12 @@ namespace MonoDevelop.Packaging get { return packageReferences; } } - public PackageReference FindPackageReference (PackageIdentity packageIdentity) + public ProjectPackageReference FindPackageReference (PackageIdentity packageIdentity) { return PackageReferences.FirstOrDefault (packageReference => IsMatch (packageReference, packageIdentity)); } - bool IsMatch (PackageReference packageReference, PackageIdentity packageIdentity) + bool IsMatch (ProjectPackageReference packageReference, PackageIdentity packageIdentity) { return String.Equals (packageReference.Include, packageIdentity.Id, StringComparison.OrdinalIgnoreCase); } @@ -297,12 +297,12 @@ namespace MonoDevelop.Packaging referenceAssemblyFrameworks.AddRange (frameworks.Select (fx => new ReferenceAssemblyFramework (fx))); } - PackageReference GetNuGetBuildPackagingPackageReference () + ProjectPackageReference GetNuGetBuildPackagingPackageReference () { return PackageReferences.FirstOrDefault (packageReference => IsNuGetBuildPackagingReference (packageReference)); } - bool IsNuGetBuildPackagingReference (PackageReference packageReference) + bool IsNuGetBuildPackagingReference (ProjectPackageReference packageReference) { return StringComparer.OrdinalIgnoreCase.Equals (packageReference.Include, "NuGet.Build.Packaging"); } diff --git a/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackageReference.cs b/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/ProjectPackageReferenceExtensions.cs index 5660ce1187..0b86a19799 100644 --- a/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/PackageReference.cs +++ b/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging/ProjectPackageReferenceExtensions.cs @@ -1,10 +1,10 @@ // -// PackageReference.cs +// ProjectPackageReferenceExtensions.cs // // Author: // Matt Ward <matt.ward@xamarin.com> // -// Copyright (c) 2016 Xamarin Inc. (http://xamarin.com) +// Copyright (c) 2017 Xamarin Inc. (http://xamarin.com) // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -24,38 +24,18 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -using MonoDevelop.Core.Serialization; -using MonoDevelop.Projects; +using MonoDevelop.PackageManagement;
+using NuGet.Packaging; using NuGet.Frameworks; -using NuGet.Packaging.Core; -using NuGet.Versioning; namespace MonoDevelop.Packaging { - [ExportProjectItemType ("PackageReference")] - class PackageReference : ProjectItem + static class ProjectPackageReferenceExtensions { - internal PackageReference (PackageIdentity packageIdentity) + internal static PackageReference ToNuGetPackageReference (this ProjectPackageReference packageReference) { - Include = packageIdentity.Id; - Version = packageIdentity.Version.ToString (); - } - - public PackageReference () - { - } - - [ItemProperty ("Version")] - public string Version { get; set; } - - [ItemProperty ("PrivateAssets")] - public string PrivateAssets { get; set; } - - internal NuGet.Packaging.PackageReference ToNuGetPackageReference () - { - var identity = new PackageIdentity (Include, new NuGetVersion (Version)); - return new NuGet.Packaging.PackageReference (identity, NuGetFramework.Parse ("any")); + var nugetPackageReference = packageReference.CreatePackageReference (); + return new PackageReference (nugetPackageReference.PackageIdentity, NuGetFramework.Parse ("any")); } } } - |