#1042 build of EE/PE on .NET

Michael Kay
Michael Kay

There is an error in the build for Saxon-EE and Saxon-PE on .NET which means that the command line interfaces (Transform, Query etc) are unusable: the DLL assemblies contain references to incorrect versions of dependent assemblies which in general will fail to load. To solve this problem, a new build is being produced.

For the record, the problem appears to have a number of causes (I haven't been able to determine which of these was primary).

Firstly, the build was done without clearing temporary libraries. It seems that ant did not rebuild some of the files, such as the Transform.exe and Query.exe files, because the script failed to recognize that their dependencies had changed. While an incremental build can be a useful timesaver during development, a build intended for release should always start with a clean slate.

Secondly, the C# compilation steps in the build specify dependencies on particular DLLs by name, but the search order for satisfying these dependencies is not very predictable especially where the DLLs don't exist in the current directory. I haven't found a complete solution to this problem, but I've changed the build so that all C# modules have an associated AssemblyInfo.cs to set the version number, and this appears to help; I also now have a diagnostic script which displays the version numbers of each DLL and its dependencies, which enables the correctness to be checked by inspection.

Thirdly, I've been running a rather small subset of the test suites before issuing a maintenance release. This strategy is justified by the fact that there have been very few regressions in the past. However I am now changing the build to include a regression test that at least exercises each executable module that is being issued, to prevent such problems occurring in the future.


  • Michael Kay
    Michael Kay

    Fixed in