我正在尝试通过将它们嵌入到 C# 代码中来运行 powershell 脚本,以便在 Sharepoint 站点上激活 (.wsp) 模板功能。我的代码如下
Command installCommand = new Command("Install-SPUserSolution");
installCommand.Parameters.Add("identity", "Template.wsp");
installCommand .Parameters .Add ("site", "siteURL");
// create Powershell runspace
Runspace runspace = RunspaceFactory.CreateRunspace();
// open it
runspace.Open()
// create a pipeline and feed it the script text
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(" Add-PsSnapin Microsoft.SharePoint.PowerShell");
pipeline.Commands.Add(installCommand);
//added just for reference since command dosen’t return anything
pipeline.Commands.Add("Out-String");
// execute the script
Collection<PSObject> results = pipeline.Invoke();
//(This part of the code throws error saying Install-SPUserSolution is not a recognized cmdlet,function,script,…)
// close the runspace
runspace.Close();
笔记:
- 我尝试将整个命令添加为脚本,但我得到了同样的错误。
- 我已经在 SharePoint 管理外壳命令提示符下尝试了该脚本,它在那里完美运行。
- 我在 WCF 的库类中使用上述代码。
- 我在 Visual Studio 中的每个子项目的所有平台都设置为“ANY CPU”,我使用的是 .net framework 3.5。
- 我还检查了管理 shell 中可用的帮助选项,并且命令“Install-SPUserSolution”确实作为 Microsoft.Sharepoint.Powershell 的 cmdlet 存在。
- 我正在使用客户端对象模型(COM)来完成我的任务,因此不能使用 C# 代码来激活功能,因为 COM 不支持它。
我完全不知道我可能做错了什么。任何帮助将不胜感激。