【发布时间】:2009-07-01 19:21:03
【问题描述】:
我们有使用 GAC 中的 dll 的 webpart。
在 *.webpart 文件中,dll 在类型名称标签中被引用。这里用版本号来指定。
是否可以让 Web 部件使用不同版本的 dll,而无需重新部署 Web 部件?
我们有许多使用 Web 部件的页面。如果我们要重新部署 Web 部件,是否需要更新所有使用该 Web 部件的页面?
【问题讨论】:
标签: sharepoint deployment
我们有使用 GAC 中的 dll 的 webpart。
在 *.webpart 文件中,dll 在类型名称标签中被引用。这里用版本号来指定。
是否可以让 Web 部件使用不同版本的 dll,而无需重新部署 Web 部件?
我们有许多使用 Web 部件的页面。如果我们要重新部署 Web 部件,是否需要更新所有使用该 Web 部件的页面?
【问题讨论】:
标签: sharepoint deployment
这个问题很相似
SO - SharePoint features: How can I use wildcard assembly versioning?
虽然您可以使用 Publisher Policy 文件来重定向程序集版本,但管理起来有点麻烦。
也许更好的方法是将其保留给主要版本(例如 SharePoint v11 到 v12 或 .net 核心库)和次要版本(例如服务包等)使用相同的 AssemblyVersion 但不同的文件版本。这正是微软自己使用和推荐的。
KB556041 - How to use Assembly Version and Assembly File Version
假设您正在为您的项目构建一个框架程序集,许多开发人员在构建应用程序程序集时都会使用它。如果您非常频繁地发布新版本的程序集......并且如果程序集是强命名的,那么开发人员每次发布新程序集时都必须更改引用......在这种封闭组和易变场景中,更好的选择是修复'Assembly Version' 并仅更改 'Assembly File Version'。
【讨论】:
您可以在 web.config 文件中试用程序集绑定
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.SharePoint" publicKeyToken="71e9bce111e9429c" culture="neutral" />
<bindingRedirect oldVersion="11.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
【讨论】: