Browse Source

Fix target framework for NuGet dependency being ignored.

A NuGet package can specify a dependency on another NuGet package when
a particular target framework is being installed:

    <dependencies>
       <group targetFramework="net40">
          <dependency id="MyDependency" version="1.0"/>
       </group>
    </dependencies>

Installing this NuGet package into a project that targets net20 and
the MyDependency being unavailable on any NuGet feed should not fail.
Only installing the NuGet package into a project that targets net40
will this dependency be resolved.
pull/701/head
Matt Ward 10 years ago
parent
commit
204e6cbe17
  1. 1
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementProject.cs
  2. 2
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementProject.cs
  3. 2
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProject.cs
  4. 2
      src/AddIns/Misc/PackageManagement/Project/Src/PackageOperationsResolverFactory.cs
  5. 5
      src/AddIns/Misc/PackageManagement/Project/Src/ProcessPackageAction.cs
  6. 2
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementProjectTests.cs
  7. 13
      src/AddIns/Misc/PackageManagement/Test/Src/ProcessPackageActionTests.cs

1
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementProject.cs

@ -19,7 +19,6 @@ @@ -19,7 +19,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Versioning;
using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.EnvDTE;

2
src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementProject.cs

@ -19,8 +19,8 @@ @@ -19,8 +19,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Versioning;
using ICSharpCode.PackageManagement.EnvDTE;
using NuGet;

2
src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProject.cs

@ -19,8 +19,8 @@ @@ -19,8 +19,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Versioning;
using ICSharpCode.PackageManagement.EnvDTE;
using ICSharpCode.SharpDevelop.Project;
using NuGet;

2
src/AddIns/Misc/PackageManagement/Project/Src/PackageOperationsResolverFactory.cs

@ -32,7 +32,7 @@ namespace ICSharpCode.PackageManagement @@ -32,7 +32,7 @@ namespace ICSharpCode.PackageManagement
return new InstallWalker(
localRepository,
sourceRepository,
null,
installAction.ProjectTargetFramework,
logger,
installAction.IgnoreDependencies,
installAction.AllowPrereleaseVersions,

5
src/AddIns/Misc/PackageManagement/Project/Src/ProcessPackageAction.cs

@ -17,6 +17,7 @@ @@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
using System.Runtime.Versioning;
using ICSharpCode.PackageManagement.Scripting;
using ICSharpCode.SharpDevelop.Project;
using NuGet;
@ -43,6 +44,10 @@ namespace ICSharpCode.PackageManagement @@ -43,6 +44,10 @@ namespace ICSharpCode.PackageManagement
public IPackageScriptRunner PackageScriptRunner { get; set; }
public bool AllowPrereleaseVersions { get; set; }
public FrameworkName ProjectTargetFramework {
get { return Project.TargetFramework; }
}
public virtual bool HasPackageScriptsToRun()
{
return false;

2
src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementProjectTests.cs

@ -19,8 +19,8 @@ @@ -19,8 +19,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Versioning;
using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design;
using ICSharpCode.PackageManagement.EnvDTE;

13
src/AddIns/Misc/PackageManagement/Test/Src/ProcessPackageActionTests.cs

@ -17,6 +17,7 @@ @@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
using System.Runtime.Versioning;
using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design;
using ICSharpCode.PackageManagement.Scripting;
@ -170,5 +171,17 @@ namespace PackageManagement.Tests @@ -170,5 +171,17 @@ namespace PackageManagement.Tests
Assert.AreEqual(expectedException, exception);
}
[Test]
public void ProjectTargetFramework_ProjectTargetFrameworkIsNet40_ReturnsNet40()
{
CreateAction();
var expectedTargetFramework = new FrameworkName(".NETFramework, Version=v4.0");
fakeProject.TargetFramework = expectedTargetFramework;
FrameworkName targetFramework = action.ProjectTargetFramework;
Assert.AreEqual(expectedTargetFramework, targetFramework);
}
}
}

Loading…
Cancel
Save