Exemplo n.º 1
0
        // REVIEW: Should this be here? Is there a better place for this static
        public static void ResolvePackageAssemblyPaths(LibraryManager libraryManager, Action <PackageDescription, AssemblyName, string> onResolveAssembly)
        {
            foreach (var library in libraryManager.GetLibraryDescriptions())
            {
                if (library.Type == LibraryTypes.Package)
                {
                    var packageDescription = (PackageDescription)library;

                    foreach (var runtimeAssemblyPath in packageDescription.Target.RuntimeAssemblies)
                    {
                        var assemblyPath = runtimeAssemblyPath.Path;
                        var name         = Path.GetFileNameWithoutExtension(assemblyPath);
                        var path         = Path.Combine(library.Path, assemblyPath);
                        var assemblyName = new AssemblyName(name);

                        string replacementPath;
                        if (ServicingTable.TryGetReplacement(
                                library.Identity.Name,
                                library.Identity.Version,
                                assemblyPath,
                                out replacementPath))
                        {
                            onResolveAssembly(packageDescription, assemblyName, replacementPath);
                        }
                        else
                        {
                            onResolveAssembly(packageDescription, assemblyName, path);
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        // REVIEW: Should this be here? Is there a better place for this static
        public static void ResolvePackageAssemblyPaths(IEnumerable <LibraryDescription> libraries, Action <PackageDescription, AssemblyName, string> onResolveAssembly)
        {
            foreach (var library in libraries)
            {
                if (library.Type == LibraryTypes.Package)
                {
                    var packageDescription = (PackageDescription)library;

                    foreach (var runtimeAssemblyPath in packageDescription.Target.RuntimeAssemblies)
                    {
                        var assemblyPath = runtimeAssemblyPath.Path;
                        var name         = Path.GetFileNameWithoutExtension(assemblyPath);
                        var path         = Path.Combine(library.Path, assemblyPath);
                        var assemblyName = new AssemblyName(name);

                        string replacementPath;
                        if (ServicingTable.TryGetReplacement(
                                library.Identity.Name,
                                library.Identity.Version,
                                assemblyPath,
                                out replacementPath))
                        {
                            onResolveAssembly(packageDescription, assemblyName, replacementPath);
                        }
                        else
                        {
                            onResolveAssembly(packageDescription, assemblyName, path);
                        }
                    }

                    foreach (var runtimeAssemblyPath in packageDescription.Target.ResourceAssemblies)
                    {
                        var    assemblyPath = runtimeAssemblyPath.Path;
                        var    name         = Path.GetFileNameWithoutExtension(assemblyPath);
                        var    path         = Path.Combine(library.Path, assemblyPath);
                        var    assemblyName = new AssemblyName(name);
                        string locale;
                        if (runtimeAssemblyPath.Properties.TryGetValue("locale", out locale))
                        {
#if DNXCORE50
                            assemblyName.CultureName = locale;
#elif DNX451
                            assemblyName.CultureInfo = new CultureInfo(locale);
#else
#error Unhandled target framework
#endif
                        }

                        string replacementPath;
                        if (ServicingTable.TryGetReplacement(
                                library.Identity.Name,
                                library.Identity.Version,
                                assemblyPath,
                                out replacementPath))
                        {
                            onResolveAssembly(packageDescription, assemblyName, replacementPath);
                        }
                        else
                        {
                            onResolveAssembly(packageDescription, assemblyName, path);
                        }
                    }
                }
            }
        }