2009-09-15 48 views
0

是否有兩個具有相同DLL的Web部件,但兩個.webpart文件部署在Sharepoint的同時?我可以在SharePoint中同時部署兩個具有相同DLL的Web部件,但同時有兩個.webpart文件

背景: 我開發一個應用程序,這將產生一個包含Web部件 「的.cab」 文件(ASP.NET 2.0 Web部件)。之後,用戶應該能夠在SharePoint服務器中部署這個「.cab」文件。

我的應用程序已經包含Web部件的DLL。此Web部件的「行爲」取決於由我的應用程序在運行時生成的「.webpart」文件的屬性(其內容將根據特定用戶的選擇而改變) 生成「.webpart」文件後,它將其打包到Manifest.xml和DLL中的「.cab」文件中。

想象一下,用戶使用我的應用程序創建了兩個「cab」文件。他希望將它們部署到SharePoint中。

爲了測試這一點,我創建了這兩個「的.cab」文件與我的應用程序,並在SharePoint我執行:

$> STSADM.EXE -o addwppack <cab filename #1> 
$> STSADM.EXE -o addwppack <cab filename #2> 
$> STSADM.EXE -o deletewppack <cab filename #1> 

第三命令執行後,Web部件#2不有DLL。 當我安裝Web部件#2時,SharePoint覆蓋Web部件#1的DLL文件 這裏的問題是,兩個文件的DLL都被複制到同一位置。該位置是DLL的程序集名稱。如果沒有重新編譯(我認爲),該程序集名稱不能更改。

是否有獨立部署兩個cab文件,即使它們共享相同的DLL?

回答

0

你可以將你的應用程序分成兩部分:一個只包含你的dll的'庫'。以及僅部署.webpart文件的內容。 用戶必須始終保持'庫'部分安裝..

此外,你可能想看看安裝'wpppack'的替代方案..webpart文件只不過是在您的網站庫中的文件..可能比在服務器上安裝.cab更容易。

0

這應該不是問題。 .webpart文件僅指向程序集中的類,併爲該類的特定實例提供配置值。如果您想要從Web部件庫中獲得多個Web部件配置,您可以通過上傳引用同一個類的多個.webpart文件來解決此問題。例如,listview webpart的每個實例都可以導出到.webpart文件,但它們都使用相同的webpart類。有關.webpart文件內容的更多信息,請檢查this blog posting

相關問題