Esempio n. 1
0
        static void Process(Options o)
        {
            const string packFile = "packages.config";

            foreach (var projFile in ProjectModel.FindFiles(o.Project))
            {
                var      proj     = ProjectModel.LoadFile(projFile);
                var      packPath = Path.Combine(proj.ProjectDirectory, packFile);
                Packages model;
                if (File.Exists(packPath))
                {
                    model = PackageModel.LoadFile(packPath);
                }
                else
                {
                    model = new Packages();
                }
                var entries = new List <Package>();
                foreach (var refi in proj.Entries.Where(e => e.HintPath != null))
                {
                    var path    = Path.GetFullPath(Path.Combine(proj.ProjectDirectory, refi.HintPath));
                    var refName = refi.HintPath.Split(new[] { refi.Info.Version.ToString() },
                                                      StringSplitOptions.None).First().TrimEnd('.')
                                  .Split(Path.DirectorySeparatorChar).Last();
                    var refVer = refi.Info.Version.ToString();
                    if (refName?.EndsWith(".dll") ?? false)
                    {
                        refName = refName.Replace(".dll", "");
                    }
                    var refFrame = proj.TargetFramework.Replace("v4", "net4").Replace(".", "");
                    entries.Add(new Package
                    {
                        Id              = refName,
                        Version         = refVer,
                        TargetFramework = refFrame
                    });
                }
                foreach (var entry in entries.OrderBy(e => e.Id))
                {
                    var tgt = model.Entries.FirstOrDefault(e => e.Id == entry.Id);
                    if (tgt == null)
                    {
                        model.Entries.Add(entry);
                        continue;
                    }
                    tgt.Id = entry.Id;
                    tgt.TargetFramework = entry.TargetFramework;
                    tgt.Version         = entry.Version;
                }
                PackageModel.StoreFile(model, packPath);
            }
        }
Esempio n. 2
0
        public void ShouldListRefs()
        {
            var files = ProjectModel.FindFiles(root);

            AreEqual(3, files.Length);
            var file1  = files.First();
            var model1 = ProjectModel.LoadFile(file1);

            AreEqual("'HintPath':'..\\", model1.Entries.First()
                     .ToJson().Substring(1, 15));
            var file2  = files.Last();
            var model2 = ProjectModel.LoadFile(file2);

            AreEqual("'HintPath':'..\\", model1.Entries.First()
                     .ToJson().Substring(1, 15));
        }