Ensure Microsoft.CSharp reference is not duplicated
This commit is contained in:
parent
14e8b184bd
commit
268dd603cc
4 changed files with 53 additions and 9 deletions
|
@ -0,0 +1,10 @@
|
||||||
|
namespace TestMicrosoftCSharpReference
|
||||||
|
{
|
||||||
|
public class Program
|
||||||
|
{
|
||||||
|
public static int Main(string[] args)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"version": "1.0.0",
|
||||||
|
"dependencies": { },
|
||||||
|
"frameworks": {
|
||||||
|
"dnxcore50": {
|
||||||
|
"dependencies": {
|
||||||
|
"NETStandard.Library": "1.0.0-rc2-23811"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dnx451": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.CSharp": "4.0.1-*"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -46,6 +46,9 @@ namespace Microsoft.DotNet.ProjectModel.Resolution
|
||||||
var targetFrameworkInfo = project.GetTargetFramework(targetFramework);
|
var targetFrameworkInfo = project.GetTargetFramework(targetFramework);
|
||||||
var dependencies = new List<LibraryRange>(targetFrameworkInfo.Dependencies);
|
var dependencies = new List<LibraryRange>(targetFrameworkInfo.Dependencies);
|
||||||
|
|
||||||
|
// Add all of the project's dependencies
|
||||||
|
dependencies.AddRange(project.Dependencies);
|
||||||
|
|
||||||
if (targetFramework != null && targetFramework.IsDesktop())
|
if (targetFramework != null && targetFramework.IsDesktop())
|
||||||
{
|
{
|
||||||
dependencies.Add(new LibraryRange("mscorlib", LibraryType.ReferenceAssembly, LibraryDependencyType.Build));
|
dependencies.Add(new LibraryRange("mscorlib", LibraryType.ReferenceAssembly, LibraryDependencyType.Build));
|
||||||
|
@ -57,14 +60,14 @@ namespace Microsoft.DotNet.ProjectModel.Resolution
|
||||||
dependencies.Add(new LibraryRange("System.Core", LibraryType.ReferenceAssembly, LibraryDependencyType.Build));
|
dependencies.Add(new LibraryRange("System.Core", LibraryType.ReferenceAssembly, LibraryDependencyType.Build));
|
||||||
|
|
||||||
if (targetFramework.Version >= new Version(4, 0))
|
if (targetFramework.Version >= new Version(4, 0))
|
||||||
|
{
|
||||||
|
if (!dependencies.Any(dep => string.Equals(dep.Name, "Microsoft.CSharp", StringComparison.OrdinalIgnoreCase)))
|
||||||
{
|
{
|
||||||
dependencies.Add(new LibraryRange("Microsoft.CSharp", LibraryType.ReferenceAssembly, LibraryDependencyType.Build));
|
dependencies.Add(new LibraryRange("Microsoft.CSharp", LibraryType.ReferenceAssembly, LibraryDependencyType.Build));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// Add all of the project's dependencies
|
|
||||||
dependencies.AddRange(project.Dependencies);
|
|
||||||
|
|
||||||
if (targetLibrary != null)
|
if (targetLibrary != null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
using System;
|
using System.Linq;
|
||||||
using System.IO;
|
|
||||||
using Microsoft.DotNet.ProjectModel.Graph;
|
using Microsoft.DotNet.ProjectModel.Graph;
|
||||||
using Microsoft.DotNet.ProjectModel.Resolution;
|
using Microsoft.DotNet.ProjectModel.Resolution;
|
||||||
|
using Microsoft.DotNet.TestFramework;
|
||||||
|
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||||
using NuGet.Frameworks;
|
using NuGet.Frameworks;
|
||||||
using NuGet.Versioning;
|
using NuGet.Versioning;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.DotNet.ProjectModel.Tests
|
namespace Microsoft.DotNet.ProjectModel.Tests
|
||||||
{
|
{
|
||||||
public class PackageDependencyProviderTests
|
public class PackageDependencyProviderTests : TestBase
|
||||||
{
|
{
|
||||||
[Fact]
|
[Fact]
|
||||||
public void GetDescriptionShouldNotModifyTarget()
|
public void GetDescriptionShouldNotModifyTarget()
|
||||||
|
@ -40,5 +41,19 @@ namespace Microsoft.DotNet.ProjectModel.Tests
|
||||||
Assert.Empty(p2.CompileTimeAssemblies);
|
Assert.Empty(p2.CompileTimeAssemblies);
|
||||||
Assert.Empty(p2.RuntimeAssemblies);
|
Assert.Empty(p2.RuntimeAssemblies);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void SingleMicrosoftCSharpReference()
|
||||||
|
{
|
||||||
|
// https://github.com/dotnet/cli/issues/1602
|
||||||
|
var instance = TestAssetsManager.CreateTestInstance("TestMicrosoftCSharpReference")
|
||||||
|
.WithLockFiles();
|
||||||
|
|
||||||
|
var context = new ProjectContextBuilder().WithProjectDirectory(instance.TestRoot)
|
||||||
|
.WithTargetFramework("dnx451")
|
||||||
|
.Build();
|
||||||
|
|
||||||
|
Assert.Equal(4, context.RootProject.Dependencies.Count());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue