始终从GAC获取最新的dll

时间:2011-03-02 16:00:35

标签: c# c#-3.0 backwards-compatibility

我们有一个版本1.0.1。*的dll,它被许多应用程序使用,它们自己在不同的机器上运行。此dll驻留在运行应用程序的计算机的GAC中。该应用程序包含此dll作为参考,“Specific Version”设置为false。我们已经提出了这个dll的版本1.0.2。*向后兼容。

是否有办法部署新的dll并要求所有应用程序选择最新版本而无需重新编译应用程序。我知道使用Publisher Policy的程序集重定向。还有另一种方式吗?

2 个答案:

答案 0 :(得分:2)

您可以在web.config中添加新的AssemblyBinding元素:

<dependentAssembly>
  <assemblyIdentity name="NHibernate" publicKeyToken="AA95F207798DFDB4" culture="neutral" />
  <bindingRedirect oldVersion="1.0.0.0-2.1.1.4000" newVersion="2.1.2.4000" />
</dependentAssembly>

答案 1 :(得分:2)

发布商政策明确设计用于执行此操作,而不是考虑它来解决您的问题没有多大意义。鉴于您的更新是“向后兼容的”,一个没有麻烦的方法是简单地不更改[AssemblyVersion]但只增加[AssemblyFileVersion]。