PDA

View Full Version : .NET COM Interop = Yes not working on build server



Provis
09-21-2018, 03:42 AM
Hi,

I do have as VS 2017 Solution with a InstallShield Merge Module (Basic MSI) projekt in it. The Merge Module project contains several build outputs of .net projetcs, that should be COM registered. I therefore set the following setting of the components to TRUE: .Net COM Interop.

=> This Merge Module works fine, if I build it using the VS IDE
=> IF I build on the Build Server (vNext, Visual Studio Build), it generates the following error:


2018-09-20T21:09:45.0065789Z ##[error]C:\Program Files (x86)\MSBuild\InstallShield\2018\InstallShield.targets(77,3): Error : -6210: An error occurred building COM .NET Interop information for Component B10Help.Prim_re_Ausgabe.D9999FB1_0449_4435_9AB1_ACEBEA1E1383
2018-09-20T21:09:45.0065789Z C:\Program Files (x86)\MSBuild\InstallShield\2018\InstallShield.targets(77,3): error : -6210: An error occurred building COM .NET Interop information for Component B10Help.Prim_re_Ausgabe.D9999FB1_0449_4435_9AB1_ACEBEA1E1383 [c:\work\7\s\Main\sources.net\Provis\ProvisMM\ProvisMM.isproj]

We have installed the standalone build on the build server.
=> If I do not enable the COM Interop settings, the Merge Module is built correctly (but of course is not fully functional...)

I've seen in other posts, that this could happen, if the wrong version of RegAsm is used by IsCmdBuild. But how can I configure this version during a solution build of Visual Studio in a vNext build?

Best regards,

Provis

banna_k
09-27-2018, 12:24 AM
Please check whether the below command line parameter resolves your issue.


-t <Microsoft .NET Framework path>

Basic MSI, InstallScript MSI

Regasm.exe and InstallUtilLib.dll are utilities that are included with each version of the .NET Framework. This parameter specifies the path for the directory that contains the installed 32-bit version of these files that you want to use at build time for releases that include .NET installer classes and COM interop. This is not the path to .NET Framework redistributable files.

Note • If you are using InstallShield on a 64-bit system, ISCmdBld.exe determines the location of the corresponding 64-bit version of the .NET Framework based on the path that you specify for this parameter, and ISCmdBld.exe uses the 64-bit location of Regasm.exe and InstallUtilLib.dll when appropriate.

For more info:
http://helpnet.flexerasoftware.com/installshield24helplib/helplibrary/ISCmdBldParam.htm

banna_k
09-28-2018, 01:37 PM
And for MSBUILD, Microsoft .NET Framework path can be specified in the "DotNetUtilPath" parameter of the Instalshield msbuild task.


Regasm.exe and InstallUtilLib.dll are utilities that are included with each version of the .NET Framework. This parameter specifies the path for the directory that contains the 32-bit version of these files that you want to use at build time for releases that include .NET installer classes and COM interop. This is not the path to .NET Framework redistributable files.

Note • If you are using InstallShield on a 64-bit system, ISCmdBld.exe determines the location of the corresponding 64-bit version of the .NET Framework based on the path that you specify for this parameter, and ISCmdBld.exe uses the 64-bit location of Regasm.exe and InstallUtilLib.dll when appropriate.


For more info : http://helpnet.flexerasoftware.com/installshield24helplib/helplibrary/MSBuild.htm