使用PowerShell创建类库并将其添加到解决方案中

时间:2013-04-21 12:06:21

标签: powershell

我正在尝试自动执行我在每个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)

我现在如何创建新项目并将其添加到解决方案中?

2 个答案:

答案 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")