Hi!
I just installed the latest release of UI for WPF (Q1 2016) via control panel. What I noticed is that most of the installed assemblies are compiled on 01/12/2016, however some of them are compiled on 01/06/2016. This also means that the assemblies have different product versions.
Example (from Binaries.NoXaml/WPF45): Telerik.Windows.Control.dll (2016.1.112.45), Telerik.Windows.Documents.Core.dll (2016.1.106.45).
This never happened before, all files of a release normally had the same build date. Since I build my projects using special target files including the version number of each assembly this is very annoying. Please correct this in the next build.
Regards
Heiko
14 Answers, 1 is accepted
Document processing libraries (DPL) - RadWordsProcessing, RadSpreadProcessing, RadPdfProcessing - which Telerik.Windows.Documents.Core is part of, were originally started as part of the WPF/Silverlight suite. Then we realized that the project is essentially cross-platform and customers on other platforms (ASP.NET, WinForms, etc.) could benefit from it.
As part of the effort to re-use the binaries among the platforms, Document Processing builds was separated from the main WPF build, thus the difference in the versions.
We plan to extend this (for DPL assemblies) by fixing the AssemblyVersion for each release (e.g. something like 2016.2.0.0 for 2016 Q2, 2016.2.1.0 for 2016 Q2 SP1) and modifying just the AssemblyFileVersion based on the date of the build.
Regards,
Boby
Telerik
Let me explain how this affects my build process. To make the whole project clearer I split it up into many modules; each module is a separate project. Now each project has references to many assemblies like the ones of Telerik. When a new version of Telerik assemblies comes out it means checking each project for the right references and updating them. To simplify this I created a file called "telerik.targets" and define some variables like this:
01.
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
02.
<
Project
ToolsVersion
=
"12.0"
xmlns
=
"http://schemas.microsoft.com/developer/msbuild/2003"
>
03.
<
PropertyGroup
>
04.
<
IsPrivate
Condition
=
" '$(IsPrivate)' == '' "
>False</
IsPrivate
>
05.
<
TelerikPath
>D:\DotNetTools\Telerik\UI for WPF Q1 2016\Binaries.NoXaml\WPF45\</
TelerikPath
>
06.
<
TelerikVersion
>Version=2016.1.112.45</
TelerikVersion
>
07.
</
PropertyGroup
>
08.
<
ItemGroup
>
09.
<
Reference
Include
=
"Telerik.Windows.Themes.Office2013, $(TelerikVersion), Culture=neutral,..."
>
10.
<
HintPath
>$(TelerikPath)Telerik.Windows.Themes.Office2013.dll</
HintPath
>
11.
<
Private
>$(IsPrivate)</
Private
>
12.
</
Reference
>
13.
...
You see that in lines 5 and 6 I define where to find the referenced assemblies and the version number, and I use these variables later on in the <Reference>...</Reference> part. In each of my projects I have a single line to include all necessary Telerik assemblies:
<
Import
Project
=
"..\telerik.targets"
/>
Moving to a new version now is very easy: I just have to change one line to the new version number in the "telerik.targets" file, then all of my projects are up-to-date.
When Telerik starts to change the versioning scheme it a) should be documented in the release history and b) at least be unique. Maybe there is a better solution then someone can point me into the right direction.
Regards
Heiko
I can understand the problem now. From now on, you should expect the version of the DPL libraries - that is the following:
- Telerik.Windows.Documents.Core
- Telerik.Windows.Documents.Fixed
- Telerik.Windows.Documents.Flow
- Telerik.Windows.Documents.Flow.FormatProviders.Pdf
- Telerik.Windows.Documents.Spreadsheet
- Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml
- Telerik.Windows.Documents.Spreadsheet.FormatProviders.Pdf
- Telerik.Windows.Zip
- Telerik.Windows.Zip.Extensions
to be slightly different than the version of the other WPF libraries.
We decided that the change is too small (and kind of internal) to be included in the release notes, but looking at your scenario I consider this decision wrong. We will carefully document and include in release notes any subsequent changes in the assembly versioning.
To this particular case, I guess you could add two different variables - TelerikVersion, and TelerikDplVersion, and use the latter only for references to the aforementioned assemblies.
Regards,
Boby
Telerik
Hi Boby,
thanks for your answer. The "TelerikDplVersion" was the trick I already used. :-) If I know that these libraries havedifferent version numbers I can take this into account for my build process.
Regards
Heiko
I wonder how was your code because'm having the same problem.
I developed a page to read a .xlsx file that uses the Telerik.Windows.Documents.Spreadsheet.dll version 2016.2.606.45 WPF and to generate a .xlsx from a PivotGrid it uses Telerik.Windows.Documents.Spreadsheet.dll Ajax \ AdditionalLibraries version 2016.2.421.45.
Thank you very much in advance.
Regards,
Igor Spadoni
Hello Boby,
How can I reference two versions of the same Telerik.Windows.Documents.Spreadsheet.dll?
I developed a page to read a .xlsx file that uses the Telerik.Windows.Documents.Spreadsheet.dll version 2016.2.606.45 WPF and to generate a .xlsx from a PivotGrid it uses Telerik.Windows.Documents.Spreadsheet.dll Ajax \ AdditionalLibraries version 2016.2.421.45.
Thank you very much in advance.
Regards,
Igor Spadoni
Hello Boby,
How can I reference two versions of the same Telerik.Windows.Documents.Spreadsheet.dll?
I developed a page to read a .xlsx file that uses the Telerik.Windows.Documents.Spreadsheet.dll version 2016.2.606.45 WPF and to generate a .xlsx from a PivotGrid it uses Telerik.Windows.Documents.Spreadsheet.dll Ajax \ AdditionalLibraries version 2016.2.421.45.
You can achieve this using the "extern alias" construct. A good tutorial is this one.
As a whole, we are trying to keep the suites in sync - e.g. ASP.NET AJAX and WPF to use the latest Document Processing version, but ASP.NET AJAX didn't manage to update on time for this particular version.
Regards,
Boby
Telerik by Progress
Good Morning.
Thank you for attention.
I realized these changes, but Visual Studio will not let me add the two dll as is reported in the tutorial. The following image of error. I removed the references and tried to add them at the same time and the error is the same.
The problem is because I use the Telerik.Windows.Documents.Spreadsheet (2016.2.606.45) to load an .xlsx for RadGrid and version (2016.2.421.45) to extract to .xlsx one RadPivotGrid using the "ExportToExcel".
I was unable to execute the command line of the first link.
Regards,
Igor Spadoni
Is there any other solution to the problem? I can not add both versions to the visual studio project itself blocks the addition.
I still can not understand how to reference the two dll in the project file, as you suggested in response "To this particular case, I guess You could add two different variables - TelerikVersion, and TelerikDplVersion, and use the Latter only for references to the aforementioned assemblies. ". This is a possibility?
Regards,
Igor Spadoni
Good Morning.
I managed to solve the problem. I do not know if you said that at some point, but follow the procedures I realized.
I referenciei project in the DLL's WPF and installed in the GAC all DLL's that are in the AdditionalLibraries AJAX.NET folder. That way everything went perfectly.
Thanks for listening.
Regards,
Igor Spadoni
Another option to add the different assemblies to the references of your project is by modifying the .csproj file. You can add them manually and set an alias as demonstrated below:
<
Reference
Include
=
"Telerik.Windows.Documents.Spreadsheet, Version=2016.2.421.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL"
>
<
SpecificVersion
>True</
SpecificVersion
>
<
HintPath
>C:\Binaries\WPF\Telerik.Windows.Documents.Spreadsheet.dll</
HintPath
>
<
Aliases
>NewSpreadsheet</
Aliases
>
</
Reference
>
<
Reference
Include
=
"Telerik.Windows.Documents.Spreadsheet, Version=2015.1.0225.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7, processorArchitecture=MSIL"
>
<
SpecificVersion
>True</
SpecificVersion
>
<
HintPath
>C:\UI for WPF Q1 2015\Binaries\WPF40\Telerik.Windows.Documents.Spreadsheet.dll</
HintPath
>
</
Reference
>
Regards,
Tanya
Telerik by Progress
Good Morning.
I had already made this change, but it did not work. When I opened the Visual Studio appeared two versions of the DLL tab of references, but one of them was with warning sign, with reset and without the correct path version.
I managed to solve the GAC installing all DLL's of AdditionalLibraries the Ajax.Net folder.
Thank you.
Hugs,
Igor Spadoni