我正在尝试自动执行我在每个Web项目上执行的一些任务。我想要的是一个PoSH脚本,我可以在一个新的解决方案上运行:
到目前为止,我有一个简单的脚本(如下所示),可以找到并打开本地解决方案文件。
$scriptpath = $MyInvocation.MyCommand.Path
$dir = Split-Path $scriptpath
Set-Location $dir
$solution = Get-ChildItem | Where-Object{($_.Extension -eq ".sln")}
if ($solution.Count -eq 0)
{
"Please place this script in the folder containing you solution file."
break;
}
$dteObj = New-Object -ComObject "VisualStudio.DTE"
$dteObj.Solution.Open($solution.FullName)
我现在如何创建新项目并将其添加到解决方案中?
答案 0 :(得分:0)
查看Jim Christopher的http://studioshell.codeplex.com/。
答案 1 :(得分:0)
要创建项目,请调用GetProjectTemplate,然后将返回的模板路径传递给AddFromTemplate。
在程序包管理器控制台中尝试此操作。
#Create a Console Project
$csTemplatePath = $dte.Solution.GetProjectTemplate("ConsoleApplication.zip", "CSharp")
$csPrjPath = "C:\\Projects\\SolutionName\\ConsoleApplication1"
$dte.Solution.AddFromTemplate($csTemplatePath, $csPrjPath, "ConsoleApplication1", 'false')
#Create a C# class
$itemPath = $dte.Solution.GetProjectItemTemplate("Class.zip", "CSharp")
$prj = Get-Project
$prjItem = $prj.ProjectItems.AddFromTemplate($itemPath, "Project.cs")