我目前正在创建一个项目模板,我想知道在创建项目后是否可以执行 PowerShell 脚本(类似于 NuGet 包中的install.ps1)。
在不实施我自己的IWizard的情况下有机会做到这一点吗?
我目前正在创建一个项目模板,我想知道在创建项目后是否可以执行 PowerShell 脚本(类似于 NuGet 包中的install.ps1)。
在不实施我自己的IWizard的情况下有机会做到这一点吗?
好的......我尝试了很多东西,但最后我最终使用了自定义 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()
{ }
}