Sharepoint サイトで (.wsp) テンプレート機能を有効にするために、PowerShell スクリプトを C# コードに埋め込んで実行しようとしています。私のコードは次のとおりです
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 を使用しています。
- また、管理シェルで使用できるヘルプ オプションも確認しました。コマンド「Install-SPUserSolution」は、Microsoft.Sharepoint.Powershell のコマンドレットとして実際に存在します。
- クライアント オブジェクト モデル (COM) を使用してタスクを完了しています。COM がサポートしていないため、C# コードを使用して機能を有効にすることはできません。
私は自分が間違っているかもしれないことについて完全に無知です。どんな助けでも大歓迎です。