OSDN Git Service

AppliStation,na-get-lib,ソフトウェアコレクションファイルのお試し版実装を追加した
authorttp <ttp@users.sourceforge.jp>
Sat, 27 Feb 2010 14:47:45 +0000 (23:47 +0900)
committerttp <ttp@users.sourceforge.jp>
Sat, 27 Feb 2010 14:47:45 +0000 (23:47 +0900)
AppliStation/PackageListViewForm.Designer.cs
AppliStation/PackageListViewForm.cs
AppliStation/PackageListViewForm.resx
na-get-lib/NaGet.Packages/PackageCollectionFileData.cs [new file with mode: 0644]
na-get-lib/na-get-lib.csproj

index 08b2cf5..72365cb 100644 (file)
                        System.Windows.Forms.ColumnHeader nameHeader;\r
                        System.Windows.Forms.ColumnHeader versionHeader;\r
                        System.Windows.Forms.ColumnHeader summaryHeader;\r
+                       System.Windows.Forms.ToolStripSeparator organizeToolStripSeparator1;\r
+                       System.Windows.Forms.ToolStripMenuItem softCollectionFileToolStripMenuItem;\r
+                       System.Windows.Forms.ToolStripSeparator organizeToolStripSeparator2;\r
                        System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PackageListViewForm));\r
+                       this.softCollectionFileImportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+                       this.softCollectionFileExportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
                        this.packageListContextMenuStripSeparator = new System.Windows.Forms.ToolStripSeparator();\r
                        this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();\r
                        this.toolStripContainer = new System.Windows.Forms.ToolStripPanel();\r
@@ -47,7 +52,6 @@
                        this.organizeToolStripDropDownButton1 = new System.Windows.Forms.ToolStripDropDownButton();\r
                        this.updateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
                        this.localupdateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
-                       this.organizeToolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();\r
                        this.optionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
                        this.upgradeToolStripButton = new System.Windows.Forms.ToolStripButton();\r
                        this.informationToolStripDropDownButton = new System.Windows.Forms.ToolStripDropDownButton();\r
@@ -55,7 +59,6 @@
                        this.webResourceCommonContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);\r
                        this.webOfficialMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
                        this.webGoogleSearchMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
-                       this.webResourceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
                        this.installedDirectoryMenuItem = new AppliStation.Util.ToolStripPetitLauncherMenuItem();\r
                        this.propertiesMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
                        this.installToolStripButton = new System.Windows.Forms.ToolStripButton();\r
@@ -65,6 +68,7 @@
                        this.packageListContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);\r
                        this.installToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
                        this.uninstallToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+                       this.webResourceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
                        this.installedDirectoryToolStripMenuItem = new AppliStation.Util.ToolStripPetitLauncherMenuItem();\r
                        this.propertiesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
                        this.columnToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
@@ -79,6 +83,9 @@
                        nameHeader = new System.Windows.Forms.ColumnHeader();\r
                        versionHeader = new System.Windows.Forms.ColumnHeader();\r
                        summaryHeader = new System.Windows.Forms.ColumnHeader();\r
+                       organizeToolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();\r
+                       softCollectionFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+                       organizeToolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();\r
                        this.tableLayoutPanel1.SuspendLayout();\r
                        this.toolStripContainer.SuspendLayout();\r
                        this.packageListFilterToolStrip.SuspendLayout();\r
                        summaryHeader.Text = "概要";\r
                        summaryHeader.Width = 300;\r
                        // \r
+                       // organizeToolStripSeparator1\r
+                       // \r
+                       organizeToolStripSeparator1.Name = "organizeToolStripSeparator1";\r
+                       organizeToolStripSeparator1.Size = new System.Drawing.Size(253, 6);\r
+                       // \r
+                       // softCollectionFileToolStripMenuItem\r
+                       // \r
+                       softCollectionFileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
+                                                                       this.softCollectionFileImportToolStripMenuItem,\r
+                                                                       this.softCollectionFileExportToolStripMenuItem});\r
+                       softCollectionFileToolStripMenuItem.Name = "softCollectionFileToolStripMenuItem";\r
+                       softCollectionFileToolStripMenuItem.Size = new System.Drawing.Size(256, 22);\r
+                       softCollectionFileToolStripMenuItem.Text = "ソフトコレクションファイル(&C)";\r
+                       // \r
+                       // softCollectionFileImportToolStripMenuItem\r
+                       // \r
+                       this.softCollectionFileImportToolStripMenuItem.Name = "softCollectionFileImportToolStripMenuItem";\r
+                       this.softCollectionFileImportToolStripMenuItem.Size = new System.Drawing.Size(152, 22);\r
+                       this.softCollectionFileImportToolStripMenuItem.Text = "インポート(&I)...";\r
+                       this.softCollectionFileImportToolStripMenuItem.Click += new System.EventHandler(this.SoftCollectionFileImportToolStripMenuItemClick);\r
+                       // \r
+                       // softCollectionFileExportToolStripMenuItem\r
+                       // \r
+                       this.softCollectionFileExportToolStripMenuItem.Name = "softCollectionFileExportToolStripMenuItem";\r
+                       this.softCollectionFileExportToolStripMenuItem.Size = new System.Drawing.Size(152, 22);\r
+                       this.softCollectionFileExportToolStripMenuItem.Text = "エクスポート(&E)...";\r
+                       this.softCollectionFileExportToolStripMenuItem.Click += new System.EventHandler(this.SoftCollectionFileExportToolStripMenuItemClick);\r
+                       // \r
+                       // organizeToolStripSeparator2\r
+                       // \r
+                       organizeToolStripSeparator2.Name = "organizeToolStripSeparator2";\r
+                       organizeToolStripSeparator2.Size = new System.Drawing.Size(253, 6);\r
+                       // \r
                        // packageListContextMenuStripSeparator\r
                        // \r
                        this.packageListContextMenuStripSeparator.Name = "packageListContextMenuStripSeparator";\r
                                                                        this.uninstallToolStripButton});\r
                        this.packageCommandsToolStrip.Location = new System.Drawing.Point(3, 25);\r
                        this.packageCommandsToolStrip.Name = "packageCommandsToolStrip";\r
-                       this.packageCommandsToolStrip.Size = new System.Drawing.Size(184, 25);\r
+                       this.packageCommandsToolStrip.Size = new System.Drawing.Size(489, 25);\r
                        this.packageCommandsToolStrip.TabIndex = 2;\r
                        // \r
                        // organizeToolStripDropDownButton1\r
                        this.organizeToolStripDropDownButton1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
                                                                        this.updateToolStripMenuItem,\r
                                                                        this.localupdateToolStripMenuItem,\r
-                                                                       this.organizeToolStripSeparator1,\r
+                                                                       organizeToolStripSeparator1,\r
+                                                                       softCollectionFileToolStripMenuItem,\r
+                                                                       organizeToolStripSeparator2,\r
                                                                        this.optionToolStripMenuItem});\r
                        this.organizeToolStripDropDownButton1.Image = ((System.Drawing.Image)(resources.GetObject("organizeToolStripDropDownButton1.Image")));\r
                        this.organizeToolStripDropDownButton1.Name = "organizeToolStripDropDownButton1";\r
                        this.localupdateToolStripMenuItem.Text = "インストール済ソフトの読み直し(&R)";\r
                        this.localupdateToolStripMenuItem.Click += new System.EventHandler(this.LocalupdateToolStripMenuItemClick);\r
                        // \r
-                       // organizeToolStripSeparator1\r
-                       // \r
-                       this.organizeToolStripSeparator1.Name = "organizeToolStripSeparator1";\r
-                       this.organizeToolStripSeparator1.Size = new System.Drawing.Size(253, 6);\r
-                       // \r
                        // optionToolStripMenuItem\r
                        // \r
                        this.optionToolStripMenuItem.Name = "optionToolStripMenuItem";\r
                                                                        this.webOfficialMenuItem,\r
                                                                        this.webGoogleSearchMenuItem});\r
                        this.webResourceCommonContextMenuStrip.Name = "packageListContextMenuStrip";\r
-                       this.webResourceCommonContextMenuStrip.OwnerItem = this.webResourceMenuItem;\r
+                       this.webResourceCommonContextMenuStrip.OwnerItem = this.webResourceToolStripMenuItem;\r
                        this.webResourceCommonContextMenuStrip.Size = new System.Drawing.Size(152, 48);\r
                        this.webResourceCommonContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(this.WebResourceCommonContextMenuStripOpening);\r
                        // \r
                        this.webGoogleSearchMenuItem.Text = "Google検索(&G)";\r
                        this.webGoogleSearchMenuItem.Click += new System.EventHandler(this.WebGoogleSearchMenuItemClick);\r
                        // \r
-                       // webResourceToolStripMenuItem\r
-                       // \r
-                       this.webResourceToolStripMenuItem.DropDown = this.webResourceCommonContextMenuStrip;\r
-                       this.webResourceToolStripMenuItem.Name = "webResourceToolStripMenuItem";\r
-                       this.webResourceToolStripMenuItem.Size = new System.Drawing.Size(214, 22);\r
-                       this.webResourceToolStripMenuItem.Tag = "";\r
-                       this.webResourceToolStripMenuItem.Text = "Webページ(&W)";\r
-                       // \r
                        // installedDirectoryMenuItem\r
                        // \r
                        this.installedDirectoryMenuItem.InvokerForm = this;\r
                        this.packageListView.Name = "packageListView";\r
                        this.packageListView.Size = new System.Drawing.Size(486, 225);\r
                        this.packageListView.SmallImageList = this.packageListViewImageList;\r
+                       this.packageListView.SortColumn = null;\r
                        this.packageListView.TabIndex = 0;\r
                        this.packageListView.UseCompatibleStateImageBehavior = false;\r
                        this.packageListView.View = System.Windows.Forms.View.Details;\r
                                                                        this.propertiesToolStripMenuItem,\r
                                                                        this.columnToolStripMenuItem});\r
                        this.packageListContextMenuStrip.Name = "packageListContextMenuStrip";\r
-                       this.packageListContextMenuStrip.Size = new System.Drawing.Size(215, 120);\r
+                       this.packageListContextMenuStrip.Size = new System.Drawing.Size(215, 142);\r
                        this.packageListContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(this.PackageListContextMenuStripOpening);\r
                        // \r
                        // installToolStripMenuItem\r
                        this.uninstallToolStripMenuItem.Text = "アンインストール(&U)...";\r
                        this.uninstallToolStripMenuItem.Click += new System.EventHandler(this.UninstallToolStripButtonClick);\r
                        // \r
+                       // webResourceToolStripMenuItem\r
+                       // \r
+                       this.webResourceToolStripMenuItem.DropDown = this.webResourceCommonContextMenuStrip;\r
+                       this.webResourceToolStripMenuItem.Name = "webResourceToolStripMenuItem";\r
+                       this.webResourceToolStripMenuItem.Size = new System.Drawing.Size(214, 22);\r
+                       this.webResourceToolStripMenuItem.Tag = "";\r
+                       this.webResourceToolStripMenuItem.Text = "Webページ(&W)";\r
+                       // \r
                        // installedDirectoryToolStripMenuItem\r
                        // \r
                        this.installedDirectoryToolStripMenuItem.InvokerForm = this;\r
                        this.packageListContextMenuStrip.ResumeLayout(false);\r
                        this.ResumeLayout(false);\r
                }\r
+               private System.Windows.Forms.ToolStripMenuItem softCollectionFileExportToolStripMenuItem;\r
+               private System.Windows.Forms.ToolStripMenuItem softCollectionFileImportToolStripMenuItem;\r
                private System.Windows.Forms.ToolStripMenuItem installDateToolStripMenuItem;\r
                private System.Windows.Forms.ToolStripMenuItem licenseToolStripMenuItem;\r
                private System.Windows.Forms.ToolStripMenuItem packageListNameToolStripMenuItem;\r
                private System.Windows.Forms.ToolStripMenuItem webOfficialMenuItem;\r
                private System.Windows.Forms.ContextMenuStrip webResourceCommonContextMenuStrip;\r
                private System.Windows.Forms.ToolStripMenuItem optionToolStripMenuItem;\r
-               private System.Windows.Forms.ToolStripSeparator organizeToolStripSeparator1;\r
                private System.Windows.Forms.ToolStripMenuItem localupdateToolStripMenuItem;\r
                private System.Windows.Forms.ToolStripMenuItem updateToolStripMenuItem;\r
                private System.Windows.Forms.ToolStripDropDownButton organizeToolStripDropDownButton1;\r
index b479a20..6ee1e35 100644 (file)
@@ -254,6 +254,92 @@ namespace AppliStation
                        UpdatePackageList();\r
                }\r
                \r
+               void SoftCollectionFileImportToolStripMenuItemClick(object sender, EventArgs e)\r
+               {\r
+                       string pwd = Directory.GetCurrentDirectory();\r
+                       \r
+                       OpenFileDialog fd = new OpenFileDialog();\r
+                       fd.Filter = "ソフトコレクションファイル (*.txt)|*.txt";\r
+                       fd.DefaultExt = "txt";\r
+                       fd.CheckFileExists = true;\r
+                       fd.CheckPathExists = true;\r
+                       fd.Multiselect = false;\r
+                       fd.ShowDialog();\r
+                       if (fd.FileNames.Length > 0) {\r
+                               string filepath = Path.GetFullPath(fd.FileName);\r
+                               Directory.SetCurrentDirectory(pwd); // ファイルダイアログで変わったカレントディレクトリを戻す\r
+                               \r
+                               IList<Package> pkgs;\r
+                               IList<string> invalid;\r
+                               \r
+                               try {\r
+                                       PackageCollectionFileData collectionData = new PackageCollectionFileData();\r
+                                       collectionData.load(filepath);\r
+                                       collectionData.generatePackages(pkgListsMan, out pkgs, out invalid);\r
+                                       \r
+                                       if (invalid.Count > 0) {\r
+                                               DialogResult result = MessageBox.Show("一部読み込みの失敗したパッケージがありますが続行しますか?", "インポート", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);\r
+                                               if (result != DialogResult.OK) {\r
+                                                       return;\r
+                                               }\r
+                                       }\r
+                               } catch (IOException) {\r
+                                       MessageBox.Show("ファイルの読み込みに失敗しました", "インポート", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
+                                       return;\r
+                               }\r
+                               \r
+                               {\r
+                                       InstallationConfirmForm confirm = new InstallationConfirmForm();\r
+                                       confirm.PkgListsManager = pkgListsMan;\r
+                                       confirm.Installations = Installation.ConvertInstallations( NaGet.Utils.IEnumerable2Array(pkgs) );\r
+                                       confirm.UseRunas = confirm.GetShouldUseRunas();\r
+                                       DialogResult result = confirm.ShowDialog(this);\r
+                                       \r
+                                       if (result == DialogResult.OK) {\r
+                                               Installation[] insts = confirm.CheckedInstallations;\r
+                                               \r
+                                               if (confirm.UseRunas) {\r
+                                                       installRunasActionInvoke(insts);\r
+                                               } else {\r
+                                                       installActionInvoke(insts);\r
+                                               }\r
+                                               \r
+                                               UpdatePackageList();\r
+                                       }\r
+                               }\r
+                       } else {\r
+                               Directory.SetCurrentDirectory(pwd); // ファイルダイアログで変わったカレントディレクトリを戻す\r
+                       }\r
+               }\r
+               \r
+               void SoftCollectionFileExportToolStripMenuItemClick(object sender, EventArgs e)\r
+               {\r
+                       string pwd = Directory.GetCurrentDirectory();\r
+                       \r
+                       SaveFileDialog fd = new SaveFileDialog();\r
+                       fd.Filter = "ソフトコレクションファイル (*.txt)|*.txt";\r
+                       fd.DefaultExt = "txt";\r
+                       fd.CheckPathExists = true;\r
+                       fd.ShowDialog();\r
+                       if (fd.FileNames.Length > 0) {\r
+                               string filepath = Path.GetFullPath(fd.FileName);\r
+                               Directory.SetCurrentDirectory(pwd); // ファイルダイアログで変わったカレントディレクトリを戻す\r
+                               \r
+                               PackageCollectionFileData collectionData = new PackageCollectionFileData();\r
+                               \r
+                               collectionData.loadPackages(pkgListsMan.GetAllInstalledPackages());\r
+                               \r
+                               try {\r
+                                       collectionData.saveAs(fd.FileName);\r
+                               } catch (IOException) {\r
+                                       MessageBox.Show("ファイルの書き込みに失敗しました", "エクスポート", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
+                                       return;\r
+                               }\r
+                       } else {\r
+                               Directory.SetCurrentDirectory(pwd); // ファイルダイアログで変わったカレントディレクトリを戻す\r
+                       }\r
+               }\r
+               \r
                void OptionToolStripMenuItemClick(object sender, EventArgs e)\r
                {\r
                        UserPrefForm userPrefForm = new UserPrefForm();\r
index 3047f3c..ae209fb 100644 (file)
   <metadata name="packageCommandsToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
     <value>464, 17</value>\r
   </metadata>\r
+  <metadata name="organizeToolStripSeparator1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">\r
+    <value>False</value>\r
+  </metadata>\r
+  <metadata name="softCollectionFileToolStripMenuItem.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">\r
+    <value>False</value>\r
+  </metadata>\r
+  <metadata name="organizeToolStripSeparator2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">\r
+    <value>False</value>\r
+  </metadata>\r
   <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />\r
   <data name="updateToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
     <value>\r
diff --git a/na-get-lib/NaGet.Packages/PackageCollectionFileData.cs b/na-get-lib/NaGet.Packages/PackageCollectionFileData.cs
new file mode 100644 (file)
index 0000000..05a2595
--- /dev/null
@@ -0,0 +1,108 @@
+using System;\r
+using System.Text;\r
+using System.IO;\r
+using System.Collections.Generic;\r
+\r
+namespace NaGet.Packages\r
+{\r
+       /// <summary>\r
+       /// 環境構築/移行を便利にするためのパッケージ名リストの表現クラス\r
+       /// </summary>\r
+       public class PackageCollectionFileData : System.Collections.ObjectModel.Collection<string>\r
+       {\r
+               public PackageCollectionFileData()\r
+               {\r
+               }\r
+               \r
+               /// <summary>\r
+               /// パッケージ名をリストに入れる\r
+               /// </summary>\r
+               /// <param name="pkgs">パッケージ情報</param>\r
+               public void loadPackages(IEnumerable<NaGet.Packages.Install.InstalledPackage> pkgs)\r
+               {\r
+                       foreach (Package pkg in pkgs) {\r
+                               if (this.IndexOf(pkg.Name) < 0) {\r
+                                       this.Add(pkg.Name);\r
+                               }\r
+                       }\r
+               }\r
+               \r
+               /// <summary>\r
+               /// このリストからパッケージのリストを得る\r
+               /// </summary>\r
+               /// <returns>パッケージのリスト</returns>\r
+               public void generatePackages(PackageListsManager pkgMan, out IList<Package> pkgs, out IList<string> invalidPkgNames)\r
+               {\r
+                       pkgs = new List<Package>();\r
+                       invalidPkgNames = new List<string>();\r
+                       \r
+                       foreach (string pkgName in this) {\r
+                               Package pkg = pkgMan.availablePkgList.GetPackageForName(pkgName);\r
+                               if (pkg != null) {\r
+                                       if ((pkgMan.installedPkgList.GetPackageForName(pkgName) == null)\r
+                                          || (pkgMan.systemInstalledPkgList.GetPackageForName(pkgName) == null)) {\r
+                                               pkgs.Add(pkg);\r
+                                       } else {\r
+                                               // すでにインストールされている場合は何もしない\r
+                                       }\r
+                               } else {\r
+                                       invalidPkgNames.Add(pkgName);\r
+                               }\r
+                       }\r
+               }\r
+               \r
+               #region ファイル入出力\r
+               \r
+               /// <summary>\r
+               /// リストをストリームに保存する\r
+               /// </summary>\r
+               /// <param name="stream">保存先</param>\r
+               public void saveAs(StreamWriter stream)\r
+               {\r
+                       foreach (string name in this) {\r
+                               stream.WriteLine("{0}", name);\r
+                       }\r
+               }\r
+               \r
+               /// <summary>\r
+               /// リストをファイルに保存する\r
+               /// </summary>\r
+               /// <param name="filepath">保存先</param>\r
+               public void saveAs(String filepath)\r
+               {\r
+                       using (FileStream stream = new FileStream(filepath, FileMode.Create)) {\r
+                               using (StreamWriter sw = new StreamWriter(stream, Encoding.UTF8)) {\r
+                                       saveAs(sw);\r
+                               }\r
+                       }\r
+               }\r
+               \r
+               /// <summary>\r
+               /// ストリームからリストを読み込む\r
+               /// </summary>\r
+               /// <param name="stream">読み取り元</param>\r
+               public void load(StreamReader stream)\r
+               {\r
+                       string line = null;\r
+                       \r
+                       while ((line = stream.ReadLine()) != null) {\r
+                               this.Add(line.Trim());\r
+                       }\r
+               }\r
+\r
+               /// <summary>\r
+               /// ファイルからリストを読み込む\r
+               /// </summary>\r
+               /// <param name="stream">読み取り元</param>\r
+               public void load(string filepath)\r
+               {\r
+                       using (FileStream fs = new FileStream(filepath, FileMode.Open)) {\r
+                               using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) {\r
+                                       load(sr);\r
+                               }\r
+                       }\r
+               }\r
+               \r
+               #endregion\r
+       }\r
+}\r
index bb0a4d8..66c2e59 100644 (file)
@@ -63,6 +63,7 @@
     <Compile Include="NaGet.Net\GuidEnumeratorForCategories.cs" />\r
     <Compile Include="NaGet.Packages.Install\DependeciesResolver.cs" />\r
     <Compile Include="NaGet.Packages.Install\InstallationLog.cs" />\r
+    <Compile Include="NaGet.Packages\PackageCollectionFileData.cs" />\r
     <Compile Include="NaGet.Packages\PackageListsManager.cs" />\r
     <Compile Include="NaGet.Packages\RepositoriesList.cs" />\r
     <Compile Include="NaGet.Packages\VersionComparetor.cs" />\r