\r
#endregion\r
\r
- internal void installActionInvoke(Package[] pkgs)\r
+ internal void installActionInvoke(Installation[] insts)\r
{\r
AppliStation.Util.ExecutionProgressViewer prog = new AppliStation.Util.ExecutionProgressViewer();\r
prog.Shown += delegate(object sender2, EventArgs e2) {\r
- NaGet.SubCommands.NaGetInstall tasks = new NaGet.SubCommands.NaGetInstall(pkgListsMan, pkgs);\r
+ NaGet.SubCommands.NaGetInstall tasks = new NaGet.SubCommands.NaGetInstall(pkgListsMan, insts);\r
tasks.Downloader = prog.Downloader;\r
prog.SetTaskSet(tasks);\r
prog.Refresh();\r
{\r
PackagesInstallConfirmForm confirm = new PackagesInstallConfirmForm();\r
confirm.PkgListsManager = pkgListsMan;\r
- confirm.Packages = SelectedPackages<Package>();\r
+ confirm.Installations = Installation.ConvertInstallations(SelectedPackages<Package>());\r
confirm.UseRunas = confirm.GetShouldUseRunas();\r
DialogResult result = confirm.ShowDialog(this);\r
\r
if (result == DialogResult.OK) {\r
- Package[] instPkgs = confirm.CheckedPackages;\r
+ Installation[] insts = confirm.CheckedInstallations;\r
\r
if (confirm.UseRunas) {\r
- installRunasActionInvoke(instPkgs);\r
+ installRunasActionInvoke(insts);\r
} else {\r
- installActionInvoke(instPkgs);\r
+ installActionInvoke(insts);\r
}\r
\r
UpdatePackageList();\r
}\r
}\r
\r
- public void installRunasActionInvoke(Package[] pkgs)\r
+ public void installRunasActionInvoke(Installation[] insts)\r
{\r
this.setWindowEnabled(false);\r
\r
string tmpfileName = Path.GetTempFileName();\r
try {\r
- NaGet.Utils.PutSerializeObject(tmpfileName, pkgs);\r
+ NaGet.Utils.PutSerializeObject(tmpfileName, insts);\r
\r
System.Diagnostics.ProcessStartInfo procInfo = new System.Diagnostics.ProcessStartInfo();\r
procInfo.FileName = Application.ExecutablePath;\r
- procInfo.Arguments = string.Format("--noupdate --cmd=install \"--pkgsref={0}\"", tmpfileName);\r
+ procInfo.Arguments = string.Format("--noupdate --cmd=install \"--instsref={0}\"", tmpfileName);\r
procInfo.Verb = "runas";\r
procInfo.WorkingDirectory = Environment.CurrentDirectory;\r
\r
\r
PackagesInstallConfirmForm confirm = new PackagesInstallConfirmForm();\r
confirm.PkgListsManager = pkgListsMan;\r
- confirm.Packages = pkgs.ToArray();\r
+ confirm.Installations = Installation.ConvertInstallations(pkgs.ToArray());\r
DialogResult result = confirm.ShowDialog(this);\r
\r
if (result == DialogResult.OK) {\r
- Package[] instPkgs = confirm.CheckedPackages;\r
+ Installation[] insts = confirm.CheckedInstallations;\r
\r
if (confirm.UseRunas) {\r
- installRunasActionInvoke(instPkgs);\r
+ installRunasActionInvoke(insts);\r
} else {\r
- installActionInvoke(instPkgs);\r
+ installActionInvoke(insts);\r
}\r
\r
UpdatePackageList();\r
using System.Drawing;\r
using System.Windows.Forms;\r
using NaGet.Packages;\r
+using NaGet.Packages.Install;\r
\r
namespace AppliStation\r
{\r
/// </summary>\r
public partial class PackagesInstallConfirmForm : Form\r
{\r
- private Package[] packages;\r
+ private Installation[] installations;\r
\r
private PackageListsManager pkgListMan;\r
\r
/// <summary>\r
- /// \83p\83b\83P\81[\83W\82Ì\8fW\8d\87\r
+ /// \83p\83b\83P\81[\83W\83C\83\93\83X\83g\81[\83\8b\8f\88\97\9d\82Ì\8fW\8d\87\r
/// </summary>\r
- public Package[] Packages {\r
- get { return packages; }\r
+ public Installation[] Installations {\r
+ get { return installations; }\r
set {\r
- packages = value;\r
+ installations = value;\r
\r
updatePackagesListView();\r
}\r
{\r
packageListView.Items.Clear();\r
\r
- if (packages != null && packages.Length > 0) {\r
- foreach (Package pkg in packages) {\r
+ if (installations != null) {\r
+ foreach (Installation inst in installations) {\r
+ Package pkg = inst.InstalledPackage;\r
+ \r
Package curPkg = null;\r
if (pkgListMan != null) { \r
curPkg = pkgListMan.InstalledPkgList.GetPackageForName(pkg.Name);\r
string curVersion = (curPkg == null)? "-" : curPkg.Version;\r
\r
ListViewItem item = new ListViewItem(new string[]{pkg.Name, pkg.Version, curVersion});\r
- item.Tag = pkg;\r
+ item.Tag = inst;\r
item.ToolTipText = pkg.Summary;\r
item.Checked = true;\r
\r
void PackageListViewContextMenuStripOpening(object sender, System.ComponentModel.CancelEventArgs e)\r
{\r
System.Windows.Forms.ListView.CheckedIndexCollection coll = packageListView.CheckedIndices;\r
- selectAllPackagesStripMenuItem.Enabled = coll.Count < packages.Length;\r
+ selectAllPackagesStripMenuItem.Enabled = coll.Count < packageListView.Items.Count;\r
unselectAllPackagesStripMenuItem.Enabled = coll.Count > 0;\r
}\r
\r
/// <summary>\r
/// \83C\83\93\83X\83g\81[\83\8b\82·\82é\82æ\82¤\91I\91ð\82³\82ê\82½\83p\83b\83P\81[\83W\82Ì\94z\97ñ\r
/// </summary>\r
- public Package[] CheckedPackages {\r
+ public Installation[] CheckedInstallations {\r
get {\r
- System.Collections.Generic.List<Package> pkgs = new System.Collections.Generic.List<Package>();\r
+ System.Collections.Generic.List<Installation> insts = new System.Collections.Generic.List<Installation>();\r
foreach (ListViewItem item in packageListView.CheckedItems) {\r
- pkgs.Add((Package) item.Tag);\r
+ insts.Add((Installation) item.Tag);\r
}\r
- return pkgs.ToArray();\r
+ return insts.ToArray();\r
}\r
}\r
\r
return false; \r
}\r
\r
- bool useRunas = false;\r
- foreach (Package pkg in CheckedPackages) {\r
- if (pkg.Type != InstallerType.ARCHIVE) {\r
- useRunas = true;\r
- break;\r
- }\r
+ // \82Ð\82Æ\82Â\82Å\82àPC\83^\81[\83Q\83b\83g\82È\83C\83\93\83X\83g\81[\83\89\82ª\82 \82ê\82Î\95K\97v\82Æ\82·\82é\r
+ foreach (Installation inst in CheckedInstallations) {\r
+ if (inst.TargetPC) return true;\r
}\r
- return useRunas;\r
+ // \82»\82ê\88È\8aO\82Í\95s\97v\r
+ return false;\r
}\r
\r
void RunasCheckBoxCheckedChanged(object sender, EventArgs e)\r
appArgs["noupdate"] = false;\r
appArgs["cmd"] = string.Empty;\r
appArgs["pkgsref"] = string.Empty;\r
+ appArgs["instsref"] = string.Empty;\r
\r
form = new PackageListViewForm();\r
}\r
void RunInstall()\r
{\r
try {\r
- NaGet.Packages.Package[] pkgs = NaGet.Utils.GetDeserializedObject<NaGet.Packages.Package[]>((string) appArgs["pkgsref"]);\r
+ NaGet.Packages.Install.Installation[] insts = NaGet.Utils.GetDeserializedObject<NaGet.Packages.Install.Installation[]>((string) appArgs["instsref"]);\r
\r
hideSplashScreen();\r
- form.installActionInvoke(pkgs);\r
+ form.installActionInvoke(insts);\r
} catch (UnauthorizedAccessException e) {\r
MessageBox.Show(string.Format("\8aÇ\97\9d\8eÒ\8c \8cÀ\82É\8f¸\8ai\82µ\82Ä\82¢\82È\82¢\82©\81A\8eÀ\8ds\8c \8cÀ\82É\96â\91è\82ª\82 \82è\82Ü\82·\81B\n(\8fÚ\8d×:{0})", e.Message),\r
Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);\r
\r
#endregion\r
\r
- #region XmlSerializer便利メソッド群\r
+ #region シリアル化関連\r
\r
+ /// <summary>\r
+ /// XMLでシリアル化したオブジェクトのXMLファイルを読み込み、デシリアル化したオブジェクトを取得する\r
+ /// </summary>\r
+ /// <param name="path">XMLファイルのパス</param>\r
+ /// <returns>デシリアル化されたオブジェクト</returns>\r
public static T GetDeserializedObject<T>(string path)\r
{\r
T retVal = default(T);\r
return retVal;\r
}\r
\r
+ /// <summary>\r
+ /// オブジェクトをXMLでシリアル化してファイルに書き込む\r
+ /// </summary>\r
+ /// <param name="path">XMLファイルのパス</param>\r
+ /// <param name="obj">シリアル化する対象のオブジェクト</param>\r
public static void PutSerializeObject<T>(string path, T obj)\r
{\r
using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write)) {\r