我正在開發一個用於部署SharePoint項目的自動化腳本。我正在使用創建站點時必須應用的沙箱級web模板。我遇到了很多麻煩,因爲它似乎像共享點緩存webtemplates列表和get-spwebtemplate doens't找不到新的。我把它的工作方式是這樣的:將自定義web模板應用於sitecollection適用於powershell ise而不是powershell控制檯
[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而不是的cmdlet。這適用於PowerShell ISE,但在PowerShell控制檯中引發了與引用DLL有關的異常:
調用帶有「1」參數的「ApplyWebTemplate」異常:「無法加載文件 或程序集XXX.SharePoint 。Common,Version = 1.0.0.0,Culture = neutral,PublicK eyToken = 534c125b45123456'或它的一個依賴關係。系統找不到指定的文件 。 在C:\構建\ SharePointBuild.p S1:318字符:37 + $ site.OpenWeb()ApplyWebTemplate < < < <($ web_template_name) + CategoryInfo:NotSpecified:(:) [],ParentContainsErrorRecordE xception + FullyQualifiedErrorId:DotNetMethodException
在sitecollection中安裝Web模板沙箱解決方案時,程序集在GAC中完美註冊。
任何想法?謝謝!
感謝您的回覆!既然我有64和x86 powershell可執行文件,我認爲它們都在64位上工作。打開powershell時,我嘗試了-sta參數,它無法工作。但是,我會嘗試你的方式 – ivos 2010-10-07 17:44:13
...並且它不起作用:( – ivos 2010-10-07 18:01:08
在這種情況下,您可以嘗試使用Windows SDK中的工具fuslogvw.exe它將顯示有關程序集加載失敗的更多信息。幫助您瞭解如何使用此工具的主題:http://msdn.microsoft.com/en-us/library/e74a18c4%28VS.71%29.aspx – 2010-10-07 19:54:01