我正在研究一種功能上個星期,會將一些事件接收器添加到特定清單實例. (我在博客上有點寫在這裡那清單接收器).
使用命令列, 我無法安裝該功能,沒有錯誤 (但請參閱下面的隱藏錯誤). 當我試圖部署上該網站的功能, MOSS 抱怨的"FileNotFoundException" 錯誤. 此博客條目描述怎麼解決的.
這是 MOSS 給我看了在 web 瀏覽器中的錯誤:
功能 ' b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ 不安裝,因為載入的事件接收器程式集"xyzzyFeatureReceiver_0" 失敗: System.IO.FileNotFoundException: 未能載入檔或程式集 xyzzyFeatureReceiver_0’ 或它的一個依賴項. 系統無法找到指定的檔. 檔案名稱: ' xyzzyFeatureReceiver_0’ 在 System.Reflection.Assembly.nLoad(程式集名稱的檔案名, 字串的代碼庫, 證據 assemblySecurity, 大會 locationHint, StackCrawlMark& stackMark, 布林 throwOnFileNotFound, 布林 forIntrospection) 在 System.Reflection.Assembly.InternalLoad(程式集名稱 assemblyRef, 證據 assemblySecurity, StackCrawlMark& stackMark, 布林 forIntrospection) 在 System.Reflection.Assembly.InternalLoad(字串 assemblyString, 證據 assemblySecurity, StackCrawlMark& stackMark, 布林 forIntrospection) 在 System.Reflection.Assembly.Load(字串 assemblyString) 在 Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject() 警告: 程式集綁定日誌記錄被關閉. 要啟用程式集綁定失敗日誌記錄, 設置註冊表值 [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD 值) 自 1. 請注意: 有一些與程式集綁定失敗日誌記錄關聯的性能損失. 若要關閉此功能, 刪除註冊表值, [HKLMSoftwareMicrosoftFusion!EnableLog].
解決 Windows SharePoint 服務的問題.
|
我知道如何故意導致該錯誤: 不在 gac 中安裝程式集. 但, 它是在 gac 中. 我通常將程式集安裝到 gac 中通過將它們拖入 c:\使用 windows 資源管理器的 windowsassembly 資料夾. 我從來 100% 舒適這樣做,因為我一直以為那 gacutil 存在的理由 … 所以我試過了. 它沒有區別.
互聯網中搜索的結果,我發現這篇文章: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1
海報發生了將使用的相同的根位的代碼 (從這裡面 WSS 本書從該清單中) 所以這是一個充滿希望的跡象. 不過, 裝飾與大會的建議 [大會: ] 指令對我沒有意義. 不管怎樣,我還是把它嘗試,右. 它沒有區別.
然後我注意到我的類定義是不公開. 我將它公開並無差異.
下一次, 去了啟用"程式集綁定失敗日誌的麻煩" (之後的有益的和準確的說明提供) 這是在哪裡,事情開始變得有趣. 該日誌顯示我運行時到處搜索,該伺服器上為我的程式集. 它甚至似乎在尋找它在我的藥櫃. 但 … 它不會為它在 gac 中搜索.
我穿上我冬季夾克和去再次搜索互聯網,發現有人也有這問題. 在這個帖子中的冗長討論彼得斯掉到什麼和我找不到解決方案.
我將我的程式集移動到日誌聲稱它搜索並多一點進步的地方之一. 一個新的錯誤,在瀏覽器中嘗試啟動該功能時我得到現在工作:
未能從程式集"xyzzyFeatureReceiver_0"創建功能接收器物件, 鍵入"Conchango.xyzzyFeatureReceiver" 為功能 b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: 值不能為空. 參數名稱: 類型 在 System.Activator.CreateInstance(類型類型, 布林非公開) 在 System.Activator.CreateInstance(類型類型) 在 Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
解決 Windows SharePoint 服務的問題.
|
互聯網的一個上次去的時候!
這次我發現, 不出所料, 苔蘚發出此錯誤,因為程式集不是 GAC 中.
我想要得到的東西這積極並嘗試覺得很驕傲我創建了 MSIL 程式集的逃犯, 但它不工作. 我只是平原惱火. 我發現自己喃喃自語"雞還是先有蛋" 根據我的呼吸.
我最後決定平底船. 我創建一個完全新的專案和複製/粘貼到這個新專案從 incredible-cloaked-from-the-GAC-assembly 非工作專案在代碼. (我去找叫什麼像"從程式集綁定如果安裝到 GAC 中隱藏一個生成標誌" 但找不到一個).
我安裝功能,並將其啟動和 … 它的工作! 所以, 這一切之後, 我基本上已經到 ' 重新開機’ 我的專案. 這就是我為什麼討厭的電腦的另一個原因.
我確實學到一些有用的這. 以前安裝過整天都使用 stsadm 命令列功能和已使用"-力" 出於習慣選項. 因為某些原因, 我沒有使用-force 選項,當你安裝了新的專案. 這一次, 我實際上做了, 真正忘了將這個新專案的程式集複製到 gac 中. 作為一個結果, 收到了"FielNotFoundException" 錯誤. 這一次, 我從 stsadm 弄, 沒有,當我試著啟動通過 web 瀏覽器功能. 所以, -力事實上是扮演兩個角色. 它允許您重新安裝現有的功能. 它還允許您將不能工作在運行時通過抑制錯誤越野功能安裝. 它可能表示盡可能説明地方但永遠不會注意到了它.
</結束>