升级相关DLL而不重新编译整个应用程序

时间:2013-09-12 07:00:27

标签: c# .net dll aspose.words

我们有使用Aspose.Words.NET版本11.10.0的Windows服务应用程序现在我们最近升级了Aspose.Words dll版本最新13.7.0

由于我们已经在多个客户端部署了我们的Windows服务应用程序,我们尝试用最新的最新版本替换旧的Aspose.Words dll。但是当我们重新启动现有的Windows应用程序时,它不适用于替换的最新Aspose.Words dll。

我们通过重新编译引用最新版Aspose.Words dll的整个Windows应用程序来解决它。每次升级Aspose.Words dll时,我们是否需要重新编译和重新部署整个Windows服务应用程序?

1 个答案:

答案 0 :(得分:7)

同时检查this answer on SO

您需要更新桌面/网络客户端的配置文件,如下所示。

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <publisherPolicy apply="no" />
        <assemblyIdentity name="Aspose.Words"  publicKeyToken="716fcc553a201e56" />
        <bindingRedirect oldVersion="11.0.0.0-13.6.0.0"
                         newVersion="13.7.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

另请注意,API中可能会有重大更改,这可能会导致其他错误。例如,在13.7中删除了存在于11.0中的方法或属性。当客户端应用程序调用特定的方法/属性时,将抛出异常。因此,您必须在开发环境中验证新版本不会破坏您的应用程序。如果它可以工作,那么你可以用新版本替换旧的DLL。

配置文件在运行时加载,因此您可以更新部署应用程序的配置文件。

我作为开发者布道者为Aspose工作。