3

現在、プロジェクト テンプレートを作成していますが、プロジェクトの作成後に PowerShell スクリプトを実行できるかどうか疑問に思っていました ( NuGet パッケージのinstall.ps1に似ています)。

自分のIWizardを実装せずにこれを行う機会はありますか?

4

1 に答える 1

2

わかりました...私は多くのことを試しましたが、最終的にカスタム IWizard になりました。

public class InitScriptWizard : IWizard
{
    public void RunStarted(
        object automationObject,
        Dictionary<string, string> replacementsDictionary,
        WizardRunKind runKind,
        object[] customParams)
    { }

    public void ProjectFinishedGenerating(Project project)
    {
        var script =
            project.ProjectItems.FindProjectItem(
                item => item.Name.Equals("init.ps1"));

        if (script == null)
        {
            return;
        }

        var process =
            System.Diagnostics.Process.Start(
                "powershell",
                string.Concat(
                    "-NoProfile -ExecutionPolicy Unrestricted -File \"",
                    script.FileNames[0],
                    "\""));

        //if (process != null)
        //{
        //    process.WaitForExit();
        //}

        //script.Delete();
    }

    public void ProjectItemFinishedGenerating(ProjectItem projectItem)
    { }

    public bool ShouldAddProjectItem(string filePath)
    {
        return true;
    }

    public void BeforeOpeningFile(ProjectItem projectItem)
    { }

    public void RunFinished()
    { }
}
于 2013-01-06T19:53:15.367 に答える