Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Environment.CurrentDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            string debugDir   = string.Format(@"..\..\..\{0}\bin\Debug", PROJECT_NAME);
            string releaseDir = string.Format(@"..\..\..\{0}\bin\Release", PROJECT_NAME);
            string moduleDir  = string.Format(@"..\..\..\{0}\bin\{0}", PROJECT_NAME);

            PSD1.Create(PROJECT_NAME, debugDir);
            PSD1.Create(PROJECT_NAME, releaseDir);
            PSM1.Create(PROJECT_NAME, debugDir);
            PSM1.Create(PROJECT_NAME, releaseDir);

            if (Directory.Exists(releaseDir))
            {
                using (Process proc = new Process())
                {
                    proc.StartInfo.FileName  = "robocopy.exe";
                    proc.StartInfo.Arguments = string.Format(
                        "\"{0}\" \"{1}\" /MIR /E /XJD /XJF", releaseDir, moduleDir);
                    proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                    proc.Start();
                    proc.WaitForExit();
                }
            }
        }
Ejemplo n.º 2
0
 static void Main(string[] args)
 {
     //  引数1 ⇒ モジュールDLLファイルへのパス
     //  引数2 ⇒ .psd1ファイルへのパス
     //  引数3 ⇒ .psm1ファイルへのパス
     if (args.Length >= 3)
     {
         PSD1.Create(args[0], args[1]);
         PSM1.Create(args[0], args[2]);
     }
 }
Ejemplo n.º 3
0
        //  Releaseモジュール作成
        private static void CreateReleaseModule(ProjectInfo info)
        {
            PSD1.Create(info);
            PSM1.Create(info);

            //  Releaseフォルダーを公開用にコピー
            if (Directory.Exists(info.TargetDir))
            {
                using (Process proc = new Process())
                {
                    proc.StartInfo.FileName  = "robocopy.exe";
                    proc.StartInfo.Arguments = string.Format(
                        "\"{0}\" \"{1}\" /COPY:DAT /MIR /E /XJD /XJF", info.TargetDir, info.ModuleDir);
                    proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                    proc.Start();
                    proc.WaitForExit();
                }
            }

            //  Scriptフォルダーをコピー
            if (Directory.Exists(info.ScriptDir))
            {
                foreach (string fileName in Directory.GetFiles(info.ScriptDir))
                {
                    File.Copy(fileName, Path.Combine(info.ModuleDir, Path.GetFileName(fileName)), true);
                }
                using (Process proc = new Process())
                {
                    proc.StartInfo.FileName    = "robocopy.exe";
                    proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

                    foreach (string dirName in Directory.GetDirectories(info.ScriptDir))
                    {
                        proc.StartInfo.Arguments = string.Format(
                            "\"{0}\" \"{1}\" /COPY:DAT /MIR /E /XJD /XJF",
                            dirName,
                            Path.Combine(info.ModuleDir, Path.GetFileName(dirName)));
                        proc.Start();
                        proc.WaitForExit();
                    }
                }
            }

            //  フォーマットファイルをコピー
            if (Directory.Exists(info.FormatDir))
            {
                foreach (string fileName in Directory.GetFiles(info.FormatDir, "*.ps1xml"))
                {
                    File.Copy(fileName, Path.Combine(info.ModuleDir, Path.GetFileName(fileName)), true);
                }
                using (Process proc = new Process())
                {
                    proc.StartInfo.FileName    = "robocopy.exe";
                    proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

                    foreach (string dirName in Directory.GetDirectories(info.FormatDir))
                    {
                        proc.StartInfo.Arguments = string.Format(
                            "\"{0}\" \"{1}\" /COPY:DAT /MIR /E /XJD /XJF",
                            dirName,
                            Path.Combine(info.ModuleDir, Path.GetFileName(dirName)));
                        proc.Start();
                        proc.WaitForExit();
                    }
                }
            }

            //  ヘルプファイルをコピー
            if (Directory.Exists(info.HelpDir))
            {
                foreach (string fileName in Directory.GetFiles(info.HelpDir, "*.dll-Help.xml"))
                {
                    File.Copy(fileName, Path.Combine(info.ModuleDir, Path.GetFileName(fileName)), true);
                }
                using (Process proc = new Process())
                {
                    proc.StartInfo.FileName    = "robocopy.exe";
                    proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

                    foreach (string dirName in Directory.GetDirectories(info.HelpDir))
                    {
                        proc.StartInfo.Arguments = string.Format(
                            "\"{0}\" \"{1}\" /COPY:DAT /MIR /E /XJD /XJF",
                            dirName,
                            Path.Combine(info.ModuleDir, Path.GetFileName(dirName)));
                        proc.Start();
                        proc.WaitForExit();
                    }
                }
            }

            //  外部パッケージをコピー
            if (info.ExternalPackages != null)
            {
                foreach (ExternalPackage exPack in info.ExternalPackages)
                {
                    exPack.CopyPackage();
                }
            }

            //  モジュールフォルダーをZipアーカイブ
            if (Directory.Exists(info.ModuleDir))
            {
                if (File.Exists(info.ModuleZip))
                {
                    File.Delete(info.ModuleZip);
                }
                ZipFile.CreateFromDirectory(info.ModuleDir, info.ModuleZip, CompressionLevel.Optimal, false);
            }
        }
Ejemplo n.º 4
0
 //  Debugモジュール作成
 private static void CreateDebugModule(ProjectInfo info)
 {
     PSD1.Create(info);
     PSM1.Create(info);
 }