我(成功)部署了一些sharepoint2010 - 使用msbuild的Webparts。一切正常,直到我決定改變assemblyVersion。每當我這樣做,消息Webpart「未註冊爲安全」更改AssemblyVersion後
Web Part Error: A Web Part or Web Form Control on this Page cannot be displayed or imported. The type RTContacts, RTContacts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2721ba85ef1e4b88 could not be found or it is not registered as safe.
一個解決辦法是留在1.0.0.0,但應該有一個更好的辦法...
也許有趣提的是,我們使用一個集中AssemblyFile其作爲鏈接包含在內。
清單包含正確的AssemblyVersion:
<Assemblies>
<Assembly Location="RTContacts.dll" DeploymentTarget="GlobalAssemblyCache">
<SafeControls>
<SafeControl Assembly="RTContacts, Version=1.0.4325.18399, Culture=neutral, PublicKeyToken=2721ba85ef1e4b88" Namespace="RTContacts" TypeName="*" />
</SafeControls>
</Assembly>
當我再次添加的WebPart到該網站,它被正確顯示出來,但已經存在的webpart似乎鏈接到舊版本。
我們決定做一個「髒」的解決方案。將AssemblyVersion保留在1.0.0.0上並使用AssemblyTitle保存「我們的」版本號。結合顯示所有webparts的AssemblyTitle的webpart,這對我們來說是一個骯髒但卻很有效的解決方案。 –
從「髒」到正確只有一小步 - 將AssemblyVersion設置爲1,並將版本信息放在AssemblyFileVersion中。您甚至可以在Web部件上輸出AssemblyFileVersion信息(我將它放在工具部件中以便於排除故障)。任務完成。 – Ryan
它已經有一段時間了。只是想告訴你我們在一段時間後做了乾淨的解決方案:) –