2010-05-19 80 views

回答

0

這將有助於成爲一個更具體一點,在你的問題「的.wsp」。

正如弗洛提到的 - 如果你把程序集的版本相同,但改變的AssemblyFileVersion那麼你可以使用

STSADM -o upgradesolution ...

見我的回答升級您的WSP解決方案的組件上SO - How can I use wildcard assembly versioning?

這將足夠webparts,但如果你有其他文物,並使用像事件接收器等功能的東西,那麼你可能需要retract and re-deploy

-1

WSP沒有真正的版本。
但是,您可以版本的組件放入其中:通過使用標準的程序集版本(WebpartV1使用匯編1.0.0不同的名字(FeatureV1,FeatureV2 ...)

  • 大會

    • 功能或的WebParts,WebPartV2使用1.1。 0等)
    • ...
  • +1

    你應該知道,如果你改變了組件的版本(而不是組件文件版本),你將不能夠簡單地更換Web部件裝配,你將不得不從所有網站刪除它,再次添加它。如果您不改變程序集版本,只需更改程序集文件版本即可避免此問題。 – Flo 2010-05-19 08:42:09

    +0

    只是爲了澄清Flo的評論,他不是在談論使用STSADM添加/刪除它的刪除,然後添加和設置每個單獨的Web部件頁面上使用的Web部件 - 真正的痛苦!你可以使用AssemblyBindingRedirect,但那不是推薦的方法。 – Ryan 2010-05-19 09:26:07

    0

    謝謝你的回覆。我有兩個問題:

    a。假設我的wsp正在部署一個裝配版本爲1.0.0.0的web部件,並且裝配文件版本也是1.0.0.0。現在幾天後,我需要部署最新版本的webpart。彙編版本現在將是2.0.0.0,彙編文件版本也將是2.0.0.0。我注意到,即使我收回並重新部署wsp,位於Web部件庫中的.webpart文件始終顯示程序集版本爲1.0.0.0。我想這是因爲wsp撤銷不會刪除.webpart文件,也不會停用功能。因此,唯一剩下的選擇是編寫功能停用代碼以從webpart畫廊中刪除.webpart文件。這將在很大程度上高效,因爲我需要迭代已部署的Web應用程序的所有網站集以從代碼(作爲安裝程序的Windows窗體)確定網站集的哪個功能已激活並停用相同功能。

    b。我需要查詢一些操作的webpart dll版本。我認爲如果我們可以版本化wsp並保持wsp版本與web部件dll相同將會很好。這將幫助我保留在SharePoint上下文中以確定Web部件的dll版本(而不是查詢dll以查找版本)。

    感謝

    +1

    回覆:a)請參閱我的回答,特別是「如何使用通配符程序集版本化」鏈接,它具有您需要的一切。 您不應該爲小版本更改更改彙編版本(就像例如*所有* SharePoint 2007版本服務包/更新等等都是12.0.0.0)您使用FileVersion來實現這一點 - 然後不用去激活停用等需要。 – Ryan 2010-05-21 10:49:43

    +0

    您也可以閱讀StackOverflow的常見問題(右上) - 它不是一個討論論壇,您的問題將更好地解釋您的說明。 – Ryan 2010-05-21 10:50:47

    相關問題