}\r
\r
/// <summary>\r
- /// シェルからフォルダアイコンを生成して返す\r
+ /// ã\82·ã\82§ã\83«ã\81\8bã\82\89ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\82¢ã\82¤ã\82³ã\83³ã\82\92ç\94\9fæ\88\90ã\81\97ã\81¦è¿\94ã\81\99\r
/// </summary>\r
- /// <returns>フォルダアイコン</returns>\r
+ /// <returns>ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\82¢ã\82¤ã\82³ã\83³</returns>\r
public static Icon GetShellIconForFolder()\r
{\r
// Vista以降ならば、SHGetStockIconInfo(SIID_FOLDER, SHGSI_ICON, &sInfo); をP/Invoke呼び出しするのが王道かと\r
private Form invokerForm;\r
\r
/// <summary>\r
- /// 親フォルダ\r
+ /// 親フォルダー\r
/// </summary>\r
[ReadOnly(true)]\r
public string BaseFolderPath {\r
#endregion\r
\r
/// <summary>\r
- /// 与えられたフォルダを開くメニューアイテムを生成する\r
+ /// ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\82\92é\96\8bã\81\8fã\83¡ã\83\8bã\83¥ã\83¼ã\82¢ã\82¤ã\83\86ã\83 ã\82\92ç\94\9fæ\88\90ã\81\99ã\82\8b\r
/// </summary>\r
/// <param name="folderPath"></param>\r
/// <returns></returns>\r
public static ToolStripMenuItem CreateMenuItemForFolder(string folderPath)\r
{\r
- ToolStripMenuItem item = CreateMenuItemForFile(folderPath, "フォルダを開く(&O)");\r
+ ToolStripMenuItem item = CreateMenuItemForFile(folderPath, "ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\82\92é\96\8bã\81\8f(&O)");\r
item.Image = GUIUtils.GetShellIconForFolder().ToBitmap();\r
item.ShowShortcutKeys = true;\r
return item;\r
}\r
\r
/// <summary>\r
- /// 与えられたフォルダのところでコマンドプロンプトを開く。\r
+ /// ä¸\8eã\81\88ã\82\89ã\82\8cã\81\9fã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81®ã\81¨ã\81\93ã\82\8dã\81§ã\82³ã\83\9eã\83³ã\83\89ã\83\97ã\83ã\83³ã\83\97ã\83\88ã\82\92é\96\8bã\81\8fã\80\82\r
/// </summary>\r
- /// <param name="folderPath">カレントフォルダ及びパスに追加されるフォルダ</param>\r
+ /// <param name="folderPath">カレントフォルダー及びパスに追加されるフォルダー</param>\r
/// <returns>生成されたメニューアイテム</returns>\r
public static ToolStripMenuItem CreateMenuItemForCmdAt(string folderPath)\r
{\r
/// <summary>\r
/// アイテムのサイレントインストール部分の表示の更新を行う。\r
/// </summary>\r
- /// <param name="item">対象のインストーラのリストアイテム</param>\r
+ /// <param name="item">対象ã\81®ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ã\83ªã\82¹ã\83\88ã\82¢ã\82¤ã\83\86ã\83 </param>\r
private void instViewUpdateSilentInstallView(ListViewItem item)\r
{\r
Installation inst = (Installation) item.Tag;\r
return false; \r
}\r
\r
- // ひとつでもPCターゲットなインストーラがあれば必要とする\r
+ // ã\81²ã\81¨ã\81¤ã\81§ã\82\82PCã\82¿ã\83¼ã\82²ã\83\83ã\83\88ã\81ªã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81\8cã\81\82ã\82\8cã\81°å¿\85è¦\81ã\81¨ã\81\99ã\82\8b\r
foreach (Installation inst in CheckedInstallations) {\r
if (inst.TargetPC) return true;\r
}\r
this.installerUrllabel.Name = "installerUrllabel";\r
this.installerUrllabel.Size = new System.Drawing.Size(86, 12);\r
this.installerUrllabel.TabIndex = 0;\r
- this.installerUrllabel.Text = "インストーラURL:";\r
+ this.installerUrllabel.Text = "インストーラーURL:";\r
// \r
// installerUrlTextBox\r
// \r
this.cannotRunLabel.Name = "cannotRunLabel";\r
this.cannotRunLabel.Size = new System.Drawing.Size(236, 12);\r
this.cannotRunLabel.TabIndex = 6;\r
- this.cannotRunLabel.Text = "ã\81\82ã\81ªã\81\9fã\81®PCã\81«ã\81¨ã\81£ã\81¦å\8b\95ä½\9c対象å¤\96ã\81®ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©です";\r
+ this.cannotRunLabel.Text = "ã\81\93ã\81®ã\82³ã\83³ã\83\94ã\83¥ã\83¼ã\82¿ã\83¼ã\81§å®\9fè¡\8cã\81§ã\81\8dã\81ªã\81\84ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼です";\r
// \r
// archLabel\r
// \r
this.typeLabel.Name = "typeLabel";\r
this.typeLabel.Size = new System.Drawing.Size(88, 12);\r
this.typeLabel.TabIndex = 10;\r
- this.typeLabel.Text = "インストーラ形式:";\r
+ this.typeLabel.Text = "インストーラー形式:";\r
// \r
// typeValueLabel\r
// \r
this.stateLabel.Name = "stateLabel";\r
this.stateLabel.Size = new System.Drawing.Size(113, 12);\r
this.stateLabel.TabIndex = 2;\r
- this.stateLabel.Text = "インストール先フォルダ:";\r
+ this.stateLabel.Text = "インストール先フォルダー:";\r
// \r
// statusLinkLabel\r
// \r
} else {\r
tabControl1.Visible = true;\r
foreach (Installer inst in pkg.Installer) {\r
- TabPage page = new TabPage(string.Format("インストーラ その{0}", tabControl1.TabCount+1));\r
+ TabPage page = new TabPage(string.Format("インストーラー その{0}", tabControl1.TabCount+1));\r
page.Dock = DockStyle.Fill;\r
\r
InstallerInfoForm instForm = new InstallerInfoForm();\r
}\r
\r
/// <summary>\r
- /// インストーラの種類についてラベルにテキストを設定する\r
+ /// ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ç¨®é¡\9eã\81«ã\81¤ã\81\84ã\81¦ã\83©ã\83\99ã\83«ã\81«ã\83\86ã\82ã\82¹ã\83\88ã\82\92è¨å®\9aã\81\99ã\82\8b\r
/// </summary>\r
/// <param name="typeValueLabel">設定先のラベル</param>\r
- /// <param name="instType">インストーラの種類</param>\r
+ /// <param name="instType">ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ç¨®é¡\9e</param>\r
private static void setLinkLabelFromLicense(LinkLabel linklabel, string license, string publicSiteUrl)\r
{\r
linklabel.Enabled = true;\r
}\r
\r
/// <summary>\r
- /// インストーラの種類についてラベルにテキストを設定する\r
+ /// ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ç¨®é¡\9eã\81«ã\81¤ã\81\84ã\81¦ã\83©ã\83\99ã\83«ã\81«ã\83\86ã\82ã\82¹ã\83\88ã\82\92è¨å®\9aã\81\99ã\82\8b\r
/// </summary>\r
/// <param name="typeValueLabel">設定先のラベル</param>\r
- /// <param name="instType">インストーラの種類</param>\r
+ /// <param name="instType">ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ç¨®é¡\9e</param>\r
private static void setTypeValueLabel(Label typeValueLabel, InstallerType instType)\r
{\r
switch (instType) {\r
typeValueLabel.Text = "自己解凍書庫または書庫";\r
break;\r
case InstallerType.EXEC_INSTALLER:\r
- typeValueLabel.Text = "インストーラ形式";\r
+ typeValueLabel.Text = "インストーラー形式";\r
break;\r
case InstallerType.MSI_PACKAGE:\r
typeValueLabel.Text = "MSIファイル形式";\r
this.installedDirectoryStripMenuItem.InvokerForm = this;\r
this.installedDirectoryStripMenuItem.Name = "installedDirectoryStripMenuItem";\r
this.installedDirectoryStripMenuItem.Size = new System.Drawing.Size(239, 22);\r
- this.installedDirectoryStripMenuItem.Text = "インストール先のフォルダ(&O)";\r
+ this.installedDirectoryStripMenuItem.Text = "インストール先のフォルダー(&O)";\r
// \r
// propertiesToolStripMenuItem\r
// \r
}\r
\r
/// <summary>\r
- /// AppliStationの自己更新を行う。アーカイブインストーラによってあらかじめインストールされたファイルを、\r
+ /// AppliStationã\81®è\87ªå·±æ\9b´æ\96°ã\82\92è¡\8cã\81\86ã\80\82ã\82¢ã\83¼ã\82«ã\82¤ã\83\96ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81«ã\82\88ã\81£ã\81¦ã\81\82ã\82\89ã\81\8bã\81\98ã\82\81ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\80\81\r
/// カレントディレクトリにコピーするよう新しいAppliStation.exeを呼ぶ。\r
/// コピー元がないまたはそれが新しくないならば何もしない。\r
/// </summary>\r
this.installScanInstallerFileCheckbox.Name = "installScanInstallerFileCheckbox";\r
this.installScanInstallerFileCheckbox.Size = new System.Drawing.Size(227, 16);\r
this.installScanInstallerFileCheckbox.TabIndex = 0;\r
- this.installScanInstallerFileCheckbox.Text = "インストーラファイルをウイルススキャンする(&S)";\r
- this.toolTip.SetToolTip(this.installScanInstallerFileCheckbox, "ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\83\80ã\82¦ã\83³ã\83ã\83¼ã\83\89ã\81\97ã\81\9fã\82\89ç\9b´ã\81¡ã\81«ã\82¦ã\82¤ã\83«ã\82¹ã\82¹ã\82ã\83£ã\83³ã\82\92è¡\8cã\81\84ã\80\81PCへの脅威を取り除きます。");\r
+ this.installScanInstallerFileCheckbox.Text = "ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¦ã\82¤ã\83«ã\82¹ã\82¹ã\82ã\83£ã\83³ã\81\99ã\82\8b(&S)";\r
+ this.toolTip.SetToolTip(this.installScanInstallerFileCheckbox, "ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\83\80ã\82¦ã\83³ã\83ã\83¼ã\83\89ã\81\97ã\81\9fã\82\89ç\9b´ã\81¡ã\81«ã\82¦ã\82¤ã\83«ã\82¹ã\82¹ã\82ã\83£ã\83³ã\82\92è¡\8cã\81\84ã\80\81ã\82³ã\83³ã\83\94ã\83¥ã\83¼ã\82¿ã\83¼への脅威を取り除きます。");\r
this.installScanInstallerFileCheckbox.UseVisualStyleBackColor = true;\r
// \r
// installOnBackgroundCheckBox\r
#region インストール設定関連\r
\r
/// <summary>\r
- /// インストーラファイルをウイルススキャンするかを設定あるいは取得する\r
+ /// ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¦ã\82¤ã\83«ã\82¹ã\82¹ã\82ã\83£ã\83³ã\81\99ã\82\8bã\81\8bã\82\92è¨å®\9aã\81\82ã\82\8bã\81\84ã\81¯å\8f\96å¾\97ã\81\99ã\82\8b\r
/// </summary>\r
public bool EnableScanInstallerFile {\r
set { this.installScanInstallerFileCheckbox.Checked = value; }\r
\r
// 変更済みファイルをinstallSrcの方に反映させる\r
if (! Directory.Exists(Path.GetDirectoryName(toBeChangedFilePath))) {\r
- // フォルダがない場合は作る\r
+ // ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81\8cã\81ªã\81\84å ´å\90\88ã\81¯ä½\9cã\82\8b\r
Directory.CreateDirectory(Path.GetDirectoryName(toBeChangedFilePath));\r
}\r
File.Copy(changedFilePath, toBeChangedFilePath);\r
Directory.CreateDirectory(targetDir);\r
}\r
\r
- // まずはフォルダツリーを作成\r
+ // ã\81¾ã\81\9aã\81¯ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\83\84ã\83ªã\83¼ã\82\92ä½\9cæ\88\90\r
foreach (string dir in Directory.GetDirectories(installSrc, "*", SearchOption.AllDirectories)) {\r
string dirPath = NaGet.Utils.GetRelativePath(installSrc, dir);\r
string targetDirPath = Path.Combine(targetDir, dirPath);\r
engine.BuildProject(proj, "Install");\r
}\r
\r
- // 直下のファイルで*.exeがGUIプログラムならプログラムフォルダに登録\r
+ // ç\9b´ä¸\8bã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81§*.exeã\81\8cGUIã\83\97ã\83ã\82°ã\83©ã\83 ã\81ªã\82\89ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81«ç\99»é\8c²\r
foreach (string exeFile in Directory.GetFiles(targetDir, "*.exe")) {\r
if (NaGet.InteropServices.PEFileInfoUtils.GetPEFileType(exeFile) == NaGet.InteropServices.PEFileType.WinGUI) {\r
string progGrpPath = Path.Combine(NaGet.Env.ArchiveProgramGroup, package.Name);\r
engine.BuildProject(proj, "Uninstall");\r
}\r
\r
- // GUIプログラムでプログラムフォルダに登録しているのを解除\r
+ // GUIã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81«ç\99»é\8c²ã\81\97ã\81¦ã\81\84ã\82\8bã\81®ã\82\92解é\99¤\r
string progGrpPath = Path.Combine(NaGet.Env.ArchiveProgramGroup, package.Name);\r
if (Directory.Exists(progGrpPath)) {\r
NaGet.Utils.SetAttributeRecursive(progGrpPath, FileAttributes.Normal);\r
}\r
\r
/// <summary>\r
- /// 作業フォルダ\r
+ /// 作業フォルダー\r
/// </summary>\r
public string WorkingDirectory {\r
get {\r
}\r
\r
/// <summary>\r
- /// (保存される)インストーラのファイルのパス\r
+ /// (ä¿\9då\98ã\81\95ã\82\8cã\82\8b)ã\83¼ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\91ã\82¹\r
/// </summary>\r
private string installerFile;\r
\r
private bool silent = false;\r
\r
/// <summary>\r
- /// 起動するインストーラのインデックス番号\r
+ /// èµ·å\8b\95ã\81\99ã\82\8bã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ã\82¤ã\83³ã\83\87ã\83\83ã\82¯ã\82¹ç\95ªå\8f·\r
/// </summary>\r
protected int installerIndex = 0;\r
\r
}\r
\r
/// <summary>\r
- /// インストーラファイルを取得する\r
+ /// ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\8f\96å¾\97ã\81\99ã\82\8b\r
/// </summary>\r
public string InstallerFile {\r
get { return installerFile; }\r
}\r
\r
\r
- #region ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©状態チェック関連\r
+ #region ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«状態チェック関連\r
\r
/// <summary>\r
/// インストール可能か否か\r
}\r
\r
/// <summary>\r
- /// インストーラの処理が成功してインストールされたプログラムが確認できるか否か。\r
+ /// ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®å\87¦ç\90\86ã\81\8cæ\88\90å\8a\9fã\81\97ã\81¦ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\95ã\82\8cã\81\9fã\83\97ã\83ã\82°ã\83©ã\83 ã\81\8c確èª\8dã\81§ã\81\8dã\82\8bã\81\8bå\90¦ã\81\8bã\80\82\r
/// </summary>\r
public bool InstallSuccessed {\r
get {\r
switch (InstalledPackage.Type) {\r
case InstallerType.ARCHIVE:\r
case InstallerType.ITSELF:\r
- // アーカイブインストーラおよび配布exeそれ自身が実行ファイルのとき、\r
- // (AppliStationの作る)プログラムフォルダの存在のみで確認を行う。\r
+ // ã\82¢ã\83¼ã\82«ã\82¤ã\83\96ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81\8aã\82\88ã\81³é\85\8då¸\83exeã\81\9dã\82\8cè\87ªèº«ã\81\8cå®\9fè¡\8cã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\81¨ã\81\8dã\80\81\r
+ // ï¼\88AppliStationã\81®ä½\9cã\82\8bï¼\89ã\83\97ã\83ã\82°ã\83©ã\83 ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81®å\98å\9c¨ã\81®ã\81¿ã\81§ç¢ºèª\8dã\82\92è¡\8cã\81\86ã\80\82\r
return Directory.Exists(Path.Combine(NaGet.Env.ArchiveProgramFiles, InstalledPackage.Name));\r
case InstallerType.EXEC_INSTALLER:\r
case InstallerType.MSI_PACKAGE:\r
installerFile = newFile;\r
}\r
\r
- // 権限を親フォルダに落とす\r
+ // 権é\99\90ã\82\92親ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81«è\90½ã\81¨ã\81\99\r
try {\r
string targetDir = Path.GetDirectoryName(installerFile);\r
NaGet.Utils.SetAccessControlRecursive(targetDir, File.GetAccessControl(Path.GetDirectoryName(targetDir)));\r
}\r
\r
/// <summary>\r
- /// インストーラファイルをスキャンする\r
+ /// ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¹ã\82ã\83£ã\83³ã\81\99ã\82\8b\r
/// </summary>\r
/// <remarks>ウイルスのため退避・削除されたときも例外を投げずにあたかも正常かのように動作しえます。</remarks>\r
/// <exception cref="ComException">スキャンで意図せぬ動作があったとき</exception>\r
- /// <exception cref="FileNotFoundException">スキャン後にインストーラファイルが存在しないとき</exception>\r
+ /// <exception cref="FileNotFoundException">ã\82¹ã\82ã\83£ã\83³å¾\8cã\81«ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå\98å\9c¨ã\81\97ã\81ªã\81\84ã\81¨ã\81\8d</exception>\r
/// <param name="scanner">スキャナーオブジェクト</param>\r
public void ScanInstallerFile(DownloadScanner scanner)\r
{\r
}\r
\r
/// <summary>\r
- /// インストーラ等を起動してインストール作業を行う\r
+ /// インストーラー等を起動してインストール作業を行う\r
/// </summary>\r
- /// <returns>インストーラの終了コード</returns>\r
+ /// <returns>ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®çµ\82äº\86ã\82³ã\83¼ã\83\89</returns>\r
public int Install()\r
{\r
string installerFile = this.installerFile;\r
}\r
\r
/// <summary>\r
- /// もっともふさわしいインストーラ番号を返す\r
+ /// もっともふさわしいインストーラー番号を返す\r
/// </summary>\r
/// <returns></returns>\r
public static int GetPreferInstallerIndex(Package InstalledPackage)\r
}\r
\r
/// <summary>\r
- /// インストーラの保存先パスを生成\r
+ /// ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ä¿\9då\98å\85\88ã\83\91ã\82¹ã\82\92ç\94\9fæ\88\90\r
/// </summary>\r
private string getArchiveFilePath()\r
{\r
} else {\r
Directory.CreateDirectory(folder);\r
\r
- // 権限を親フォルダに合わせる\r
+ // 権é\99\90ã\82\92親ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81«å\90\88ã\82\8fã\81\9bã\82\8b\r
try {\r
Directory.SetAccessControl(folder, Directory.GetAccessControl(Path.GetDirectoryName(folder)));\r
} catch (Exception) {} // 失敗時無視\r
}\r
\r
/// <summary>\r
- /// インストーラファイルを探す\r
+ /// ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92æ\8e¢ã\81\99\r
/// </summary>\r
- /// <param name="basedir">探すフォルダ</param>\r
- /// <param name="type">インストーラの種類</param>\r
- /// <returns>探し出されたインストーラファイルのフルパス。存在しないならばnull</returns>\r
+ /// <param name="basedir">探すフォルダー</param>\r
+ /// <param name="type">ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ç¨®é¡\9e</param>\r
+ /// <returns>æ\8e¢ã\81\97å\87ºã\81\95ã\82\8cã\81\9fã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\95ã\83«ã\83\91ã\82¹ã\80\82å\98å\9c¨ã\81\97ã\81ªã\81\84ã\81ªã\82\89ã\81°null</returns>\r
private static string seekInstallerFile(string basedir, InstallerType type)\r
{\r
if (! Directory.Exists(basedir)) {\r
public UninstallInformation UninstallInfo;\r
\r
/// <summary>\r
- /// インストール先フォルダを返す。\r
+ /// ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«å\85\88ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\82\92è¿\94ã\81\99ã\80\82\r
/// <code>UninstallInfo.InstallLocation</code>が空ならば、\r
/// 解決を試みる。\r
/// </summary>\r
- /// <returns>インストール先フォルダ。見つからなかったら<code>null</code></returns>\r
+ /// <returns>ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«å\85\88ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\80\82è¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\8bã\81£ã\81\9fã\82\89<code>null</code></returns>\r
public string discoverInstalledLocation()\r
{\r
if (string.IsNullOrEmpty(UninstallInfo.InstallLocation)) {\r
public sealed class RegistriedUninstallers\r
{\r
/// <summary>\r
- /// アンインストーラのレジストリの格納されているルートキーの文字列表現\r
+ /// ã\82¢ã\83³ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ã\83¬ã\82¸ã\82¹ã\83\88ã\83ªã\81®æ ¼ç´\8dã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83«ã\83¼ã\83\88ã\82ã\83¼ã\81®æ\96\87å\97å\88\97表ç\8f¾\r
/// </summary>\r
public const string UninstallersKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";\r
\r
/// <summary>\r
- /// アンインストーラのレジストリの格納されているルートキーの文字列表現\r
+ /// ã\82¢ã\83³ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ã\83¬ã\82¸ã\82¹ã\83\88ã\83ªã\81®æ ¼ç´\8dã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83«ã\83¼ã\83\88ã\82ã\83¼ã\81®æ\96\87å\97å\88\97表ç\8f¾\r
/// </summary>\r
public const string UninstallersKeyWow6432 = @"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall";\r
\r
/// <summary>\r
- /// アンインストーラのレジストリのキーを返す。\r
+ /// ã\82¢ã\83³ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ã\83¬ã\82¸ã\82¹ã\83\88ã\83ªã\81®ã\82ã\83¼ã\82\92è¿\94ã\81\99ã\80\82\r
/// </summary>\r
public static IEnumerable<RegistryKey> RegistryKeies {\r
get {\r
\r
\r
/// <summary>\r
- /// アンインストーラをイテレートする\r
+ /// ã\82¢ã\83³ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\82\92ã\82¤ã\83\86ã\83¬ã\83¼ã\83\88ã\81\99ã\82\8b\r
/// </summary>\r
public static IEnumerable<UninstallInformation> Uninstallers {\r
get {\r
}\r
\r
/// <summary>\r
- /// インストール先のフォルダ\r
+ /// インストール先のフォルダー\r
/// </summary>\r
public string InstallLocation;\r
\r
}\r
\r
/// <summary>\r
- /// パッケージ情報からアンインストーラ情報を生成する\r
+ /// パッケージ情報からアンインストーラー情報を生成する\r
/// </summary>\r
/// <param name="pkg">パッケージ</param>\r
/// <returns>生成されたアンインストール</returns>\r
}\r
\r
/// <summary>\r
- /// アンインストーラ等を起動してアンインストール作業を行う\r
+ /// アンインストーラー等を起動してアンインストール作業を行う\r
/// </summary>\r
- /// <returns>アンインストーラの終了コード</returns>\r
+ /// <returns>ã\82¢ã\83³ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®çµ\82äº\86ã\82³ã\83¼ã\83\89</returns>\r
public int Uninstall()\r
{\r
if (! Installed) {\r
namespace NaGet.Packages\r
{\r
/// <summary>\r
- /// インストーラの種類を表す。\r
+ /// ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ç¨®é¡\9eã\82\92表ã\81\99ã\80\82\r
/// </summary>\r
public enum InstallerType\r
{\r
/// <summary>\r
- /// インストーラ\r
+ /// インストーラー\r
/// </summary>\r
[XmlEnum(Name="installer")]\r
EXEC_INSTALLER,\r
public string Author;\r
\r
/// <summary>\r
- /// インストーラのタイプ\r
+ /// ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ã\82¿ã\82¤ã\83\97\r
/// </summary>\r
public InstallerType Type;\r
\r
/// <summary>\r
- /// インストーラが書庫内に入っているかのフラグ\r
+ /// ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81\8cæ\9b¸åº«å\86\85ã\81«å\85¥ã\81£ã\81¦ã\81\84ã\82\8bã\81\8bã\81®ã\83\95ã\83©ã\82°\r
/// </summary>\r
public bool ArchivedInstaller = false;\r
\r
/// <summary>\r
- /// アンインストーラのレジストリのキー\r
+ /// ã\82¢ã\83³ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ã\83¬ã\82¸ã\82¹ã\83\88ã\83ªã\81®ã\82ã\83¼\r
/// </summary>\r
public string UninstallerKey;\r
\r
/// <summary>\r
/// サイレントインストールのための引数。\r
- /// インストーラ形式のみ有効で、nullもしくは空文字列の場合は\r
+ /// インストーラー形式のみ有効で、nullもしくは空文字列の場合は\r
/// サイレントインストールができないことをあらわす\r
/// </summary>\r
public string SilentInstallArguments;\r
public string InstallScript;\r
\r
/// <summary>\r
- /// アーカイブインストーラのときのSystem32のコピー\r
+ /// ã\82¢ã\83¼ã\82«ã\82¤ã\83\96ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ã\81¨ã\81\8dã\81®System32ã\81®ã\82³ã\83\94ã\83¼\r
/// </summary>\r
public string System32CopyFiles;\r
\r
/// <summary>\r
- /// インストーラのリソースの配列\r
+ /// ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ã\83ªã\82½ã\83¼ã\82¹ã\81®é\85\8då\88\97\r
/// </summary>\r
[XmlElement]\r
public Installer[] Installer;\r
/// <summary>\r
/// 本ソフトウェアを介してインストールされたパッケージを検出する。\r
/// 具体的には<see cref="NaGet.Env.ArchiveProgramFiles" />\r
- /// で指定されたフォルダの下を見る。\r
+ /// ã\81§æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81®ä¸\8bã\82\92è¦\8bã\82\8bã\80\82\r
/// </summary>\r
public void DetectInstalledPkgs()\r
{\r
taskSetNames.Add(string.Format("取得: {0}", Installations[i].ToString()));\r
taskSetNames.Add(string.Format("ウイルススキャン: {0}", Installations[i].ToString()));\r
}\r
- taskSetNames.Add("インストーラの検証");\r
+ taskSetNames.Add("ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®æ¤\9c証");\r
for (int i =0; i < Installations.Length; i++) {\r
taskSetNames.Add(string.Format("インストール: {0}", Installations[i].ToString()));\r
}\r
\r
RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
\r
- // ハッシュの壊れているインストーラを取得\r
+ // ã\83\8fã\83\83ã\82·ã\83¥ã\81®å£\8aã\82\8cã\81¦ã\81\84ã\82\8bã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\82\92å\8f\96å¾\97\r
invalidInstallers = runCheckHashForInstaller();\r
\r
// ハッシュが壊れているときの対策\r
inst.OutputDataReceived += this.ReceivedOutputData;\r
int exitCode = inst.Install();\r
if (exitCode != 0) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING, "ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\8cæ£å¸¸ã\81«çµ\82ã\81\88ã\81¦ã\81\84ã\81ªã\81\84å\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8aã\81¾ã\81\99ã\80\82ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©の終了コード:"+exitCode);\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING, "ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\8cæ£å¸¸ã\81«çµ\82ã\81\88ã\81¦ã\81\84ã\81ªã\81\84å\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8aã\81¾ã\81\99ã\80\82ã\83\97ã\83ã\82»ã\82¹の終了コード:"+exitCode);\r
}\r
\r
pkgListMan.WriteInstallationLog(inst);\r
try {\r
inst.Download(Downloader);\r
} catch (NaGetTaskCanceledException) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.CANCELED, "インストーラのダウンロード処理がキャンセルされました");\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.CANCELED, "ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ã\83\80ã\82¦ã\83³ã\83ã\83¼ã\83\89å\87¦ç\90\86ã\81\8cã\82ã\83£ã\83³ã\82»ã\83«ã\81\95ã\82\8cã\81¾ã\81\97ã\81\9f");\r
done = true;\r
return;\r
} catch (System.Net.WebException e) {\r
if (inst.Downloaded) { // 正常終了\r
RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex-1]);\r
} else { // インストールが完了せずに終わった=失敗=エラー\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, string.Format("{0}のインストーラを正常にダウンロードできませんでした", inst.ToString()));\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, string.Format("{0}ã\81®ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92æ£å¸¸ã\81«ã\83\80ã\82¦ã\83³ã\83ã\83¼ã\83\89ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\81§ã\81\97ã\81\9f", inst.ToString()));\r
done = true;\r
return;\r
}\r
RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING,\r
string.Format("{0} (E{1})", ex.InnerException.Message, ((System.Runtime.InteropServices.COMException) ex.InnerException).ErrorCode));\r
}\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, "ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\81\8cã\82¦ã\82¤ã\83«ã\82¹ã\82¹ã\82ã\83£ã\83\8aによって削除されました。");\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, "ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cã\82¦ã\82¤ã\83«ã\82¹ã\82¹ã\82ã\83£ã\83\8aã\83¼によって削除されました。");\r
done = true;\r
return;\r
}\r
/// <summary>\r
/// ダウンロードしたパッケージが整合したか否かハッシュでチェック\r
/// </summary>\r
- /// <returns>整合しなかったインストーラのリスト</returns>\r
+ /// <returns>æ\95´å\90\88ã\81\97ã\81ªã\81\8bã\81£ã\81\9fã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ã\83ªã\82¹ã\83\88</returns>\r
private List<Installation> runCheckHashForInstaller()\r
{\r
List<Installation> invalidInstallers = new List<Installation>();\r
uninst.ErrorDataReceived += this.ReceivedErrorData;\r
int exitCode = uninst.Uninstall();\r
if (exitCode != 0) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING, "\83A\83\93\83C\83\93\83X\83g\81[\83\8b\82ª\90³\8fí\82É\8fI\82¦\82Ä\82¢\82È\82¢\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B\83A\83\93\83C\83\93\83X\83g\81[\83\89\82Ì\8fI\97¹\83R\81[\83h:"+exitCode);\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING, "\83A\83\93\83C\83\93\83X\83g\81[\83\8b\82ª\90³\8fí\82É\8fI\82¦\82Ä\82¢\82È\82¢\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B\83v\83\8d\83Z\83X\82Ì\8fI\97¹\83R\81[\83h:"+exitCode);\r
}\r
} catch (Exception e) {\r
RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, e.Message);\r
public static readonly string SystemInstalledPackageLogFile = "packages.sysinstalled.log.xml";\r
\r
/// <summary>\r
- /// アプリケーションデータを保存するフォルダのパス\r
+ /// ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\83\87ã\83¼ã\82¿ã\82\92ä¿\9då\98ã\81\99ã\82\8bã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81®ã\83\91ã\82¹\r
/// </summary>\r
public static string AppDataFolderPath\r
{\r
}\r
\r
/// <summary>\r
- /// インストーラの一時置き場の親ディレクトリ\r
+ /// ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81®ä¸\80æ\99\82ç½®ã\81\8då ´ã\81®è¦ªã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ª\r
/// </summary>\r
public static string ArchiveFolderPath\r
{\r
}\r
\r
/// <summary>\r
- /// アーカイバ方式のパッケージのインストール先フォルダ\r
+ /// アーカイバ方式のパッケージのインストール先フォルダー\r
/// </summary>\r
public static string ArchiveProgramFiles {\r
get {\r
}\r
\r
/// <summary>\r
- /// アーカイバ方式のパッケージのプログラムグループフォルダ\r
+ /// アーカイバ方式のパッケージのプログラムグループフォルダー\r
/// </summary>\r
public static string ArchiveProgramGroup {\r
get {\r
}\r
\r
/// <summary>\r
- /// アーカイバ方式のパッケージのSystem32のフォルダ\r
+ /// アーカイバ方式のパッケージのSystem32のフォルダー\r
/// </summary>\r
public static string ArchiveSystem32 {\r
get {\r
#region インストールプロセス\r
\r
/// <summary>\r
- /// インストーラをウイルススキャンするか?\r
+ /// ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\82\92ã\82¦ã\82¤ã\83«ã\82¹ã\82¹ã\82ã\83£ã\83³ã\81\99ã\82\8bã\81\8b?\r
/// </summary>\r
public static bool EnableScanInstallerFile {\r
get {\r
public class NaGetLibPref\r
{\r
/// <summary>\r
- /// アプリケーションデータを置くフォルダ。\r
+ /// ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\83\87ã\83¼ã\82¿ã\82\92ç½®ã\81\8fã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\80\82\r
/// </summary>\r
/// <remarks>デフォルトではカレントディレクトリ</remarks>\r
[XmlElement]\r
#region ファイル情報関連ユーテイリティ関数\r
\r
/// <summary>\r
- /// パス変数に指定のフォルダを追加する\r
+ /// ã\83\91ã\82¹å¤\89æ\95°ã\81«æ\8c\87å®\9aã\81®ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\82\92追å\8a ã\81\99ã\82\8b\r
/// </summary>\r
- /// <param name="dir">追加するフォルダ</param>\r
+ /// <param name="dir">追加するフォルダー</param>\r
public static void AddDirectoryToPath(string dir)\r
{\r
string path = Environment.GetEnvironmentVariable("PATH");\r
}\r
\r
/// <summary>\r
- /// 再帰的にファイルの属性を指定します。強制的にフォルダの再帰削除の前に読み込み専用属性を消すのに使います。\r
+ /// å\86\8d帰ç\9a\84ã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\81®å±\9eæ\80§ã\82\92æ\8c\87å®\9aã\81\97ã\81¾ã\81\99ã\80\82å¼·å\88¶ç\9a\84ã\81«ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81®å\86\8d帰å\89\8aé\99¤ã\81®å\89\8dã\81«èªã\81¿è¾¼ã\81¿å°\82ç\94¨å±\9eæ\80§ã\82\92æ¶\88ã\81\99ã\81®ã\81«ä½¿ã\81\84ã\81¾ã\81\99ã\80\82\r
/// </summary>\r
- /// <param name="path">設定するフォルダ</param>\r
+ /// <param name="path">設定するフォルダー</param>\r
/// <param name="attr">設定する属性値</param>\r
public static void SetAttributeRecursive(string path, FileAttributes attr)\r
{\r
File.SetAttributes(file, attr);\r
}\r
\r
- // 子フォルダを再帰的に属性変更\r
+ // å\90ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\82\92å\86\8d帰ç\9a\84ã\81«å±\9eæ\80§å¤\89æ\9b´\r
foreach (string file in Directory.GetDirectories(path)) {\r
SetAttributeRecursive(file, attr);\r
}\r
/// <summary>\r
/// 再帰的にファイルのアクセス権限(ユーザ権限など)を設定します\r
/// </summary>\r
- /// <param name="path">設定するフォルダ</param>\r
+ /// <param name="path">設定するフォルダー</param>\r
/// <param name="filesec">変更先権限</param>\r
public static void SetAccessControlRecursive(string path, FileSecurity filesec)\r
{\r
File.SetAccessControl(file, filesec);\r
}\r
\r
- // 子フォルダを再帰的に権限変更\r
+ // å\90ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\82\92å\86\8d帰ç\9a\84ã\81«æ¨©é\99\90å¤\89æ\9b´\r
foreach (string file in Directory.GetDirectories(path)) {\r
SetAccessControlRecursive(file, filesec);\r
}\r
}\r
\r
/// <summary>\r
- /// ファイルまたはフォルダの容量を算出して返す\r
+ /// ã\83\95ã\82¡ã\82¤ã\83«ã\81¾ã\81\9fã\81¯ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81®å®¹é\87\8fã\82\92ç®\97å\87ºã\81\97ã\81¦è¿\94ã\81\99\r
/// </summary>\r
/// <param name="path">\r
- /// 対象ファイル及びフォルダのパス\r
+ /// 対象ã\83\95ã\82¡ã\82¤ã\83«å\8f\8aã\81³ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81®ã\83\91ã\82¹\r
/// </param>\r
/// <returns>\r
/// 計算された容量(バイト単位)\r
}\r
\r
/// <summary>\r
- /// フォルダの容量を算出して返す\r
+ /// ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81®å®¹é\87\8fã\82\92ç®\97å\87ºã\81\97ã\81¦è¿\94ã\81\99\r
/// </summary>\r
/// <param name="dirInfo">\r
- /// 対象フォルダ\r
+ /// 対象フォルダー\r
/// </param>\r
/// <returns>\r
/// 計算された容量(バイト単位)\r
/// パスをパス区切り文字列ごとに分割した配列を返す\r
/// </summary>\r
/// <param name="path">パス文字列。相対・絶対は区別しない</param>\r
- /// <returns>フォルダ名ごとに分けられた文字列配列</returns>\r
+ /// <returns>フォルダー名ごとに分けられた文字列配列</returns>\r
private static string[] splitPath(string path)\r
{\r
return path.Split(new char[]{Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar});\r
}\r
\r
/// <summary>\r
- /// パスがフォルダのとき、最後がパスセパレータで終了するようにする。\r
+ /// ã\83\91ã\82¹ã\81\8cã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\81®ã\81¨ã\81\8dã\80\81æ\9c\80å¾\8cã\81\8cã\83\91ã\82¹ã\82»ã\83\91ã\83¬ã\83¼ã\82¿ã\81§çµ\82äº\86ã\81\99ã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\80\82\r
/// </summary>\r
/// <param name="path">パス</param>\r
/// <returns>処理されたパス</returns>\r
/// <summary>\r
/// 絶対パスを相対パスに変換して返します。\r
/// </summary>\r
- /// <param name="baseDirectoryPath">相対パスの基準のフォルダ</param>\r
+ /// <param name="baseDirectoryPath">相対パスの基準のフォルダー</param>\r
/// <param name="absPath">絶対パス</param>\r
/// <returns><code>absPath</code>の絶対パス表現</returns>\r
public static string GetRelativePath(string baseDirectoryPath, string absPath)\r
if (fol == ".") {\r
// 無視\r
} else if (fol == "..") {\r
- // 一つ前のフォルダを消す\r
+ // ä¸\80ã\81¤å\89\8dã\81®ã\83\95ã\82©ã\83«ã\83\80ã\83¼ã\82\92æ¶\88ã\81\99\r
newFolders.RemoveAt(newFolders.Count-1);\r
} else {\r
newFolders.Add(fol);\r