私は、SharePoint プロジェクトを展開するための自動化されたスクリプトに取り組んでいます。サイトの作成時に適用する必要があるサンドボックス レベルの Web テンプレートを使用しています。sharepoint が webtemplates のリストをキャッシュし、get-spwebtemplate が新しく追加されたものを見つけられないように見えるので、私はそれを行うのに多くの問題を抱えていました。私がそれを機能させた方法は次のとおりです。
[system.reflection.assembly]::LoadWithPartialName("Microsoft.Sharepoint")
$site= new-Object Microsoft.SharePoint.SPSite($web_application_complete_url)
$site.OpenWeb().ApplyWebTemplate($web_template_name)
$site.Dispose()
ご覧のとおり、コマンドレットの代わりに .net sharepoint API を使用しています。これは PowerShell ISE では問題なく機能しますが、PowerShell コンソールでは、参照されている DLL に関して例外がスローされます。
"1" 個の引数を指定して "ApplyWebTemplate" を呼び出し中に例外が発生しました: "ファイルまたはアセンブリ 'XXX.SharePoint.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=534c125b45123456' またはその依存関係の 1 つを読み込めませんでした。指定されたファイルが見つかりません。」C:\Build\SharePointBuild.p s1:318 char:37 + $site.OpenWeb().ApplyWebTemplate <<<< ($web_template_name) + CategoryInfo : NotSpecified: (:) []、ParentContainsErrorRecordE xception + FullyQualifiedErrorId : DotNetMethodException
Web テンプレート サンドボックス ソリューションをサイト コレクションにインストールすると、アセンブリは GAC に完全に登録されます。
何か案は?ありがとう!