MATLAB Answers

awa
0

How can file version and product version be defined, when compiling a matlab code to a dll with dotnetbuilder?

Asked by awa
on 15 Jul 2015
Latest activity Edited by Girija Jarvis on 5 Dec 2018
The project in deploytool does not take parameters for the produced dll-properties file version, product version. Generated dlls always have a file version of 0.0.0.0.
Any options available to provide version information to the dotnetbuilder output?

  1 Comment

I am having same issue cannot version dll ..... .rc files also doesnt help in versioning.

Sign in to comment.

2 Answers

Answer by awa
on 28 Nov 2018
Edited by awa
on 28 Nov 2018
 Accepted Answer

The way we build dotnet dlls with version info nowadays, is to not use the project files but the mcc compiler on the command line / script and include an Assemblyinfo.cs -file as C# -code created by the build script including the version information. The full filename of AssemblyInfo.cs is added to the mcc command line.
This is also working if you add an appropriate AssemblyInfo.cs as an additional parameter passed to MCC. Just tried on an older project.
DeploytoolSettings.png

  3 Comments

This works beautifully, except that the project builds two versions of the Assembly. One using the MWArray API, and the other using a .Net native API. It looks like the assembly info is only going into the MWArray API version of the dll.
I had Version Info generated on both DLL when i generated .net dll using .net assembly compiler SDK and this did not include any other options like type safe API etc . below is the snapshot of Native DLL's assembly info. But then as Michael said when we generate Type Safe .net DLL's only the MWArray API version of the dll has the assembly info and the other two DLL's have no assembly version info.
nativeDLL.png

Sign in to comment.


Answer by Richa Gupta on 20 Jul 2015

Hi Awa,
It is possible to provide version of the .NET DLL generated using MATLAB Compiler. You can do this using the "Library version" field in deploytool. For more information, you can refer to the following link:
As you can see, you can view and change the version number under the Application Information section.
Also, what do you mean by specifying the product version for a DLL?
-Richa

  3 Comments

Hi Richa, a typical Executables File Properties Details page looks like this:
You can see a copyright notice, manufacturer and product info, file and product version. DLLs shipped with Matlab2014a seem not to use these categories, therefore I guess matworks does not care for these. I found a way to modify these information with Microsoft Visual Studio after producing the dll with deploytool, but I would prefer to provide this information within the project file for dotnetbuilder. Although I provide information in the input fields of deploytool,
<param.summary>Summary</param.summary>
<param.description>Description</param.description>
which i can find in the prj-File the DLL file props are empty:
------------------------------------------
------------------------------------------
AWa
The answer does not work. If I "view and change version number under the Application Information section" (by the way, the linked page does not mention this or show it as a possibility) it does not change the version number of the .Net dll. The .Net assembly version is very important and is always in the format w.x.y.z, where wxy and z are numbers. Whatever the version number specified in the Settings menu it, it won't allow input in this format.
If you have by now learnt how to version the .net assembly version please can you share the details with me, i am unable to version the .net dll either

Sign in to comment.