我(成功地)使用msbuild部署了一些sharepoint2010 - some部件。在我决定改变assemblyVersion之前,一切都很好。每当我这么做的时候
Web部件错误:无法显示或导入此页上的Web部件或Web窗体控件。无法找到RTContacts、RTContacts、Version=1.0.0.0、Culture=neutral、PublicKeyToken=2721ba85ef1e4b88类型或未注册为安全类型。
一个解决办法是保持1.0.0.0,但是应该有更好的方法.
也许值得一提的是,我们使用了一个集中式的AssemblyFile,它是作为一个链接包括在内的。
清单包含正确的组装版本:
<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添加到该站点时,它将被正确显示,但是已经存在的webParts似乎链接到了旧版本。
发布于 2011-11-07 09:37:18
出现这些问题是因为您不正确地使用版本控制属性。
例如,如果检查Reflector中的Microsoft.SharePoint.dll,您将看到v14.0.0.0 (用于SharePoint 2010)。
这个AssemblyVersion对于Beta、RCx、RTM所有服务包和CU等都将保持完全相同--唯一改变的是AssemblyFileVersion (这是在Windows中在属性下看到的)。
有关更多细节,请参见此。
但不要相信我的话-微软KB556041 -如何使用程序集版本和程序集文件版本
如果您遵循这一点,则不需要程序集绑定重定向,并且当您更新web部件时,现有实例不会被破坏。
https://stackoverflow.com/questions/8006500
复制相似问题