Skip to content
This repository has been archived by the owner on Dec 18, 2017. It is now read-only.

Commit

Permalink
Split frameworkAssemblies and dependencies completely
Browse files Browse the repository at this point in the history
- Framework resolution happens in a single place. It has been removed
 from the nuget and project resolvers
- Updated all project.json files to use the right section for
frameworkAssemblies
  • Loading branch information
davidfowl committed Oct 5, 2014
1 parent 2ffade3 commit cb70ea7
Show file tree
Hide file tree
Showing 14 changed files with 68 additions and 139 deletions.
32 changes: 16 additions & 16 deletions samples/HelloWorld/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@
},
"frameworks": {
"net45": {
"dependencies": {
"System.Collections": "",
"System.IO": "",
"System.Runtime": "",
"System.Xml": "",
"System.Xml.Linq": "",
"System.Threading.Tasks": "",
"System.Text.Encoding": ""
"frameworkAssemblies": {
"System.Collections": "4.0.0.0",
"System.IO": "4.0.0.0",
"System.Runtime": "4.0.0.0",
"System.Xml": "4.0.0.0",
"System.Xml.Linq": "4.0.0.0",
"System.Threading.Tasks": "4.0.0.0",
"System.Text.Encoding": "4.0.0.0"
}
},
"k10": {
Expand All @@ -32,14 +32,14 @@
}
},
"aspnet50": {
"dependencies": {
"System.Collections": "",
"System.IO": "",
"System.Runtime": "",
"System.Xml": "",
"System.Xml.Linq": "",
"System.Threading.Tasks": "",
"System.Text.Encoding": ""
"frameworkAssemblies": {
"System.Collections": "4.0.0.0",
"System.IO": "4.0.0.0",
"System.Runtime": "4.0.0.0",
"System.Xml": "4.0.0.0",
"System.Xml.Linq": "4.0.0.0",
"System.Threading.Tasks": "4.0.0.0",
"System.Text.Encoding": "4.0.0.0"
}
},
"aspnetcore50": {
Expand Down
4 changes: 2 additions & 2 deletions src/Microsoft.Framework.DesignTimeHost/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
"compilationOptions" : { "define" : ["TRACE"], "warningsAsErrors": true },
"frameworks" : {
"net45" : {
"dependencies" : {
"System.Net" : ""
"frameworkAssemblies" : {
"System.Net" : "4.0.0.0"
}
},
"aspnetcore50" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,14 +170,12 @@ private async Task<bool> RestoreForProject(string projectJsonPath, string rootDi
new ProjectReferenceDependencyProvider(
new ProjectResolver(
projectDirectory,
rootDirectory),
new EmptyFrameworkResolver())));
rootDirectory))));

localProviders.Add(
new LocalWalkProvider(
new NuGetDependencyResolver(
packagesDirectory,
new EmptyFrameworkResolver())));
packagesDirectory)));

var effectiveSources = PackageSourceUtils.GetEffectivePackageSources(SourceProvider,
Sources, FallbackSources);
Expand Down Expand Up @@ -285,8 +283,7 @@ private async Task<bool> RestoreFromGlobalJson(string rootDirectory, string pack
localProviders.Add(
new LocalWalkProvider(
new NuGetDependencyResolver(
packagesDirectory,
new EmptyFrameworkResolver())));
packagesDirectory)));

var effectiveSources = PackageSourceUtils.GetEffectivePackageSources(SourceProvider,
Sources, FallbackSources);
Expand Down
20 changes: 10 additions & 10 deletions src/Microsoft.Framework.PackageManager/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,16 @@

"frameworks": {
"net45": {
"dependencies": {
"System.Collections": "",
"System.IO": "",
"System.IO.Compression": "",
"System.Net.Http": "",
"System.Runtime": "",
"System.Runtime.Serialization": "",
"System.Security": "",
"System.Xml": "",
"System.Xml.Linq": ""
"frameworkAssemblies": {
"System.Collections": "4.0.0.0",
"System.IO": "4.0.0.0",
"System.IO.Compression": "4.0.0.0",
"System.Net.Http": "4.0.0.0",
"System.Runtime": "4.0.0.0",
"System.Runtime.Serialization": "4.0.0.0",
"System.Security": "4.0.0.0",
"System.Xml": "4.0.0.0",
"System.Xml.Linq": "4.0.0.0"
}
},
"aspnetcore50": {
Expand Down
14 changes: 7 additions & 7 deletions src/Microsoft.Framework.Project/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
},
"frameworks" : {
"net45" : {
"dependencies": {
"System.Collections" : "",
"System.IO" : "",
"System.IO.Compression" : "",
"System.Runtime" : "",
"System.Xml": "",
"System.Xml.Linq": ""
"frameworkAssemblies": {
"System.Collections" : "4.0.0.0",
"System.IO" : "4.0.0.0",
"System.IO.Compression" : "4.0.0.0",
"System.Runtime" : "4.0.0.0",
"System.Xml": "4.0.0.0",
"System.Xml.Linq": "4.0.0.0"
}
},
"aspnetcore50" : {
Expand Down
16 changes: 8 additions & 8 deletions src/Microsoft.Framework.Runtime.Roslyn/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@
},
"frameworks" : {
"net45" : {
"dependencies": {
"System.Collections" : "",
"System.IO": "",
"System.Runtime" : "",
"System.Xml": "",
"System.Xml.Linq": "",
"System.Threading.Tasks": "",
"System.Text.Encoding": ""
"frameworkAssemblies": {
"System.Collections" : "4.0.0.0",
"System.IO": "4.0.0.0",
"System.Runtime" : "4.0.0.0",
"System.Xml": "4.0.0.0",
"System.Xml.Linq": "4.0.0.0",
"System.Threading.Tasks": "4.0.0.0",
"System.Text.Encoding": "4.0.0.0"
}
},
"aspnetcore50" : {
Expand Down
4 changes: 2 additions & 2 deletions src/Microsoft.Framework.Runtime/ApplicationHostContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ public ApplicationHostContext(IServiceProvider serviceProvider,
PackagesDirectory = packagesDirectory ?? NuGetDependencyResolver.ResolveRepositoryPath(RootDirectory);

var referenceAssemblyDependencyResolver = new ReferenceAssemblyDependencyResolver(FrameworkReferenceResolver);
NuGetDependencyProvider = new NuGetDependencyResolver(PackagesDirectory, FrameworkReferenceResolver, RootDirectory);
NuGetDependencyProvider = new NuGetDependencyResolver(PackagesDirectory, RootDirectory);
var gacDependencyResolver = new GacDependencyResolver();
ProjectDepencyProvider = new ProjectReferenceDependencyProvider(ProjectResolver, FrameworkReferenceResolver);
ProjectDepencyProvider = new ProjectReferenceDependencyProvider(ProjectResolver);
UnresolvedDependencyProvider = new UnresolvedDependencyProvider();

DependencyWalker = new DependencyWalker(new IDependencyProvider[] {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,14 @@ public class NuGetDependencyResolver : IDependencyProvider, ILibraryExportProvid
// All the information required by this package
private readonly Dictionary<string, PackageDescription> _packageDescriptions = new Dictionary<string, PackageDescription>(StringComparer.OrdinalIgnoreCase);

private readonly IFrameworkReferenceResolver _frameworkReferenceResolver;

private readonly GlobalSettings _globalSettings;

public NuGetDependencyResolver(string packagesPath, IFrameworkReferenceResolver frameworkReferenceResolver, string rootDir = null)
public NuGetDependencyResolver(string packagesPath, string rootDir = null)
{
// Runtime already ensures case-sensitivity, so we don't need package ids in accurate casing here
_repository = new PackageRepository(packagesPath, checkPackageIdCase: false);
_frameworkReferenceResolver = frameworkReferenceResolver;
Dependencies = Enumerable.Empty<LibraryDescription>();

if (!string.IsNullOrEmpty(rootDir))
{
GlobalSettings.TryGetGlobalSettings(rootDir, out _globalSettings);
Expand Down Expand Up @@ -281,11 +279,6 @@ private void PopulateMetadataReferences(PackageDescription description, Framewor
paths[assembly.Name] = new MetadataFileReference(assembly.Name, assembly.Path);
}
}

foreach (var assembly in GetFrameworkAssemblies(description, targetFramework))
{
paths[assembly.Name] = new MetadataFileReference(assembly.Name, assembly.Path);
}
}


Expand All @@ -300,31 +293,6 @@ private IEnumerable<string> GetSharedSources(PackageDescription description, Fra
return Directory.EnumerateFiles(directory, "*.*", SearchOption.AllDirectories);
}

private List<AssemblyDescription> GetFrameworkAssemblies(PackageDescription description, FrameworkName targetFramework)
{
var results = new List<AssemblyDescription>();
var package = description.Package;

IEnumerable<FrameworkAssemblyReference> frameworkAssemblies;
if (VersionUtility.TryGetCompatibleItems(targetFramework, package.FrameworkAssemblies, out frameworkAssemblies))
{
foreach (var reference in frameworkAssemblies)
{
string path;
if (_frameworkReferenceResolver.TryGetAssembly(reference.AssemblyName, targetFramework, out path))
{
results.Add(new AssemblyDescription
{
Name = reference.AssemblyName,
Path = path
});
}
}
}

return results;
}

private static List<AssemblyDescription> GetPackageAssemblies(PackageDescription description, FrameworkName targetFramework)
{
var package = description.Package;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,10 @@ namespace Microsoft.Framework.Runtime
public class ProjectReferenceDependencyProvider : IDependencyProvider
{
private readonly IProjectResolver _projectResolver;
private readonly IFrameworkReferenceResolver _frameworkReferenceResolver;

public ProjectReferenceDependencyProvider(IProjectResolver projectResolver, IFrameworkReferenceResolver frameworkReferenceResolver)
public ProjectReferenceDependencyProvider(IProjectResolver projectResolver)
{
_projectResolver = projectResolver;
_frameworkReferenceResolver = frameworkReferenceResolver;
Dependencies = Enumerable.Empty<LibraryDescription>();
}

Expand Down Expand Up @@ -71,25 +69,6 @@ public LibraryDescription GetDescription(Library library, FrameworkName targetFr

var dependencies = project.Dependencies.Concat(targetFrameworkDependencies).ToList();

// TODO: Remove this code once there's a new build of the KRE
// We need to keep this for bootstrapping to continue working
foreach (var d in dependencies)
{
if (d.Library.IsGacOrFrameworkReference)
{
continue;
}

string path;
d.Library.IsGacOrFrameworkReference = _frameworkReferenceResolver.TryGetAssembly(d.Name, targetFramework, out path);

// We need to fix up the version here since
if (d.Library.IsGacOrFrameworkReference)
{
d.Library.Version = VersionUtility.GetAssemblyVersion(path);
}
}

return new LibraryDescription
{
Identity = new Library
Expand Down
16 changes: 8 additions & 8 deletions src/Microsoft.Framework.Runtime/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@
},
"frameworks": {
"net45": {
"dependencies": {
"System.Collections": "",
"System.IO": "",
"System.IO.Compression": "",
"System.IO.Compression.FileSystem": "",
"System.Runtime": "",
"System.Xml": "",
"System.Xml.Linq": ""
"frameworkAssemblies": {
"System.Collections": "4.0.0.0",
"System.IO": "4.0.0.0",
"System.IO.Compression": "4.0.0.0",
"System.IO.Compression.FileSystem": "4.0.0.0",
"System.Runtime": "4.0.0.0",
"System.Xml": "4.0.0.0",
"System.Xml.Linq": "4.0.0.0"
}
},
"aspnetcore50": {
Expand Down
4 changes: 2 additions & 2 deletions src/klr.host/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
},
"frameworks": {
"net45": {
"dependencies": {
"System.Runtime": ""
"frameworkAssemblies": {
"System.Runtime": "4.0.0.0"
}
},
"aspnetcore50": {
Expand Down
10 changes: 3 additions & 7 deletions test/Microsoft.Framework.CommandLineUtils.Tests/project.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
{
"dependencies": {
"Microsoft.Framework.CommandLineUtils": "",
"Microsoft.Framework.CommandLineUtils": "",
"Xunit.KRunner": "1.0.0-*"
},

"frameworks" : {
"aspnet50" : {
"dependencies": {
"System.Runtime": ""
}
}
"frameworks": {
"aspnet50": { }
},

"commands": {
Expand Down
11 changes: 2 additions & 9 deletions test/Microsoft.Framework.Runtime.Roslyn.Tests/project.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
{
"dependencies": {
"K.Roslyn" : "1.0.0-*",
"K.Roslyn": "1.0.0-*",
"Microsoft.Framework.Runtime.Interfaces": "",
"Microsoft.Framework.Runtime.Roslyn": "",
"Xunit.KRunner": "1.0.0-*"
},
"frameworks": {
"aspnet50": {
"dependencies": {
"System.Collections" : "",
"System.Runtime" : "",
"System.Xml": "",
"System.Xml.Linq": ""
}
}
"aspnet50": { }
},
"commands": {
"test": "Xunit.KRunner"
Expand Down
8 changes: 2 additions & 6 deletions test/Microsoft.Framework.Runtime.Tests/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,11 @@
"dependencies": {
"Microsoft.Framework.Runtime": "",
"Microsoft.Framework.Runtime.Interfaces": "",
"Shouldly" : "1.1.1.1",
"Shouldly": "1.1.1.1",
"Xunit.KRunner": "1.0.0-*"
},
"frameworks": {
"aspnet50": {
"dependencies": {
"System.Runtime" : ""
}
}
"aspnet50": { }
},
"commands": {
"test": "Xunit.KRunner"
Expand Down

0 comments on commit cb70ea7

Please sign in to comment.