【发布时间】:2011-06-27 18:09:25
【问题描述】:
我正在尝试让 Powershell 在构建后运行我的 PS 脚本 - 但不知何故,它并没有像预期的那样工作:
构建后的以下命令:
C:\WINDOWS\system32\windowspowershell\1.0\powershell.exe
-Command "& $(MSBuildProjectDirectory)\CreateSite.ps1 'auto'"
(插入换行符以便于阅读)
该命令成功执行了powershell脚本,但它不能做的是运行(从构建输出)中的命令: Rund 构建后命令:
Add-PSSnapin : No snap-ins have been registered for Windows PowerShell version 2
At C:\path\CreateSite.ps1:4 char:
38
+ Add-PsSnapin <<<< Microsoft.SharePoint.PowerShell}
+ CategoryInfo : InvalidArgument: (Microsoft.SharePoint.PowerShell:String) [Add-PSSnapin], PSArgumentException
+ FullyQualifiedErrorId : AddPSSnapInRead,Microsoft.PowerShell.Commands.AddPSSnapinCommand
然后出现很多错误,因为所有后续命令都需要 Sharepoint 管理单元。
- 从 cmd 运行 powershell C:\path\CreateSite.ps1 auto 时 - 一切正常。
- 打开 powershell.exe 并运行 C:\path\CreateSite.ps1 auto - 一切正常。
- 右键单击 CreateSite.ps1 --> 使用 powershell 运行 - 一切正常。
脚本中的相关行只是Add-PsSnapin Microsoft.SharePoint.PowerShell。
我怎样才能只运行该死的脚本(并让它包含 PSSnapIn)在 Visual Studio 后期构建中传递一个参数?
【问题讨论】:
标签: visual-studio-2010 powershell sharepoint-2010 build-process