Zsolt Kollarits
Posts: 339
Joined: Fri May 29, 2015 10:36 am

IMPORTANT: Some DLLs installed to the incorrect place

Wed Apr 06, 2022 11:59 am

Dear Advanced Installer Support Team,

Let me report an important issue for you: we just noticed that some of the DLLs we would like to install to the Global Assembly Cache are installed to
C:\Program Files\Therefore\Global Assembly Cache Files folder instead which is a serious issue for us as some of our features are not working, so please handle this ticket as a severe one.

For example check these 2 files in our setup .aip (I will send of the .aip):
Microsoft.Azure.KeyVault.dll
Microsoft.Azure.KeyVault.WebKey.dll

We handle those DLLs in the exact same way as we handled the other GAC DLLs in the past:
1. Those DLLs are added to "Application Folder\Global Assembly Cache Files" folder in "Files and Folders" area
2. The property panel of those DLLs is exactly the same than the property panel of the working DLLs
3. Those DLLs are ALSO added to the Assemblies area in the exact same way as the other DLLs
4. Also in the Organization tab we have a feature that contains 19 DLLs. The other 17 DLLs are going to the "C:\Windows\Microsoft.NET\assembly\GAC_MSIL" folder (screenshots attached), but the 2 Microsoft.Azure.* DLLs are going to "C:\Program Files\Therefore\Global Assembly Cache Files"

There are no messages in the EventViewer.

Could you please take a look at the .aip file I will send over to you and let us know why those 2 DLLs behave in a different way?
We are using AI version 18.9.1 for building our EXEs.

Best regards,
Zsolt Kollarits
Attachments
GAC_feature.png
GAC_feature.png (127.15KiB)Viewed 46215 times
Files are correctly installed to GAC.png
Files are correctly installed to GAC.png (76.07KiB)Viewed 46215 times
Files under the wrong location.png
Files under the wrong location.png (25.82KiB)Viewed 46215 times

Zsolt Kollarits
Posts: 339
Joined: Fri May 29, 2015 10:36 am

Re: IMPORTANT: Some DLLs installed to the incorrect place

Wed Apr 06, 2022 2:53 pm

Hi Advanded Installer Support Team,

I just sent over an installation logfile for you too, please check your mailbox :)

Best regards,l
Zsolt

Zsolt Kollarits
Posts: 339
Joined: Fri May 29, 2015 10:36 am

Re: IMPORTANT: Some DLLs installed to the incorrect place

Wed Apr 06, 2022 5:06 pm

Hi,

We just found out that the same happens with 4 more files too:

Microsoft.Exchange.WebServices.dll
Microsoft.Exchange.WebServices.Auth.dll
Microsoft.SharePoint.Client.Runtime.dll
Microsoft.SharePoint.Client.dll

So in total 6 dlls are installed on our client (TheClient.exe) installations, but they are not added to the GAC. Our server builds (TheServer.exe) are working just fine.

We also noticed that all of those files (components) are shared between several features, but even if a feature is available in TheClient.exe, the files are not properly installed as they are not going to the GAC.

Is it possible that there is a bug in AI so that it has some troubles with installing shared components (that belong to multiple features) to the GAC?

Best regards,
Zsolt

Eusebiu
Posts: 4931
Joined: Wed Nov 14, 2012 2:04 pm

Re: IMPORTANT: Some DLLs installed to the incorrect place

Thu Apr 07, 2022 2:32 pm

Hi Zsolt,

This is strange. I do not see why there should be a problem with sharing the assemblies' components. Can you reproduce this behavior on a clean machine, as well? Does it also appear if you try to add those assemblies in a new simple project? If so, can you share those assemblies with me, so I can test and investigate the problem on my side?

Best regards,
Eusebiu
Eusebiu Aria - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Zsolt Kollarits
Posts: 339
Joined: Fri May 29, 2015 10:36 am

Re: IMPORTANT: Some DLLs installed to the incorrect place

Fri Apr 08, 2022 3:25 pm

Hi Eusebiu,

Finally I managed to reproduce an issue in a small sample project too, I will send over to you.

I generated a client and a server setup from that sample exe (exe resources next to it), I will also attach all the required files.

What you need to do is:
1. Install TheFilesMissingFromGACServer.exe
2. Select all the features during install
3. Enter some random text for server name on the "Configure Server Connection" dialog
4. Confirm that the 6 DLLs I was talking about are all present in the GAC (in Windows\Microsoft.NET\assembly\GAC_MSIL or in Windows\assembly\GAC_MSIL)

5. Do another test with the exact same steps, but install TheFilesMissingFromGACClient.exe
6. Confirm the the files are present in C:\Programs Files\Global Assembly Cache folder instead of the GAC

Please let me know if you need some further information.

Best regards,
Zsolt

Eusebiu
Posts: 4931
Joined: Wed Nov 14, 2012 2:04 pm

Re: IMPORTANT: Some DLLs installed to the incorrect place

Tue Apr 12, 2022 3:25 pm

Hi Zsolt,

Thank you for sharing the resources with me. I've investigated them and I managed to find the problem.

I see that the problematic assemblies are shared between features, but some features are included only in the "Server" build and other features are included in the "Client" build, as well.

The problem is that the features that first contained those assemblies, were the features included only in the "Server" build, thus they took the ownership on those assemblies (in the "MsiAssembly" table). Then, when you shared them with the features that are also part of the "Client" build, the assembly tables were not added to that build because the ownership of the assemblies is taken by a feature that is present only in the "Server" build.

The problem is that an assembly cannot be registered under two features at the same time. I'm not sure if this is an Advanced Installer limitation, but I will add this on our TODO list so we will investigate and improve this in a future version, if possible.

Meanwhile, you can fix this by setting as the owner of the assemblies, a feature that is present in all builds. To achieve this, you can follow the steps below:
  • let's say you have some assemblies shared between feature X and feature Y, but feature X is added to the "Server" build and feature Y is added under both "Client" and "Server" builds
  • the problem appears only when in the "MsiAssembly" table the feature assigned to those assemblies is X, because X is part only of the "Server" feature
  • in order to assign the assemblies to the Y feature which is part of both builds, you need to go in the "Organization" page, select the Y feature, then uncheck and re-check the "Server" build from the selected builds list
Let me know if that worked.

Best regards,
Eusebiu
Eusebiu Aria - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Zsolt Kollarits
Posts: 339
Joined: Fri May 29, 2015 10:36 am

Re: IMPORTANT: Some DLLs installed to the incorrect place

Thu Apr 14, 2022 8:20 am

Hi Eusebiu,

Thanks for investigating this for us :) I will try out your solution attempt and will let you know about the result.

I think we can agree that this is a bug in Advanced Installer. My feeling is that me as an AI user configured the .aip just fine:
1. I created a shared component that I would like to install with a "Server" and with a "Server & Client" feature
2. The component is visually visible "under" the correct features, so I would expect the files to be installed on the hard drive also added to the GAC as per configured on the Assemblies tab
3. Nothing indicates in the .aip, so visually nothing tells me that the files won't be installed in the GAC. I'm not missing any configuration steps, so I can't fix the .aip, because visally everything seems to be correct. It's a different story, that some lines are kind of broken in the background, in the .aip's xml -> that's nothing we can do about, so that's why I think this is an AI bug.
4. Enabling and disabling a build checkbox on a feature can be a temporary fixture for now, but it's not a long term solution. Without a proper bugfix in AI we can face with this problem any time in the future.

Is there an easy way - maybe directly in the .aip's xml - to get the entire list of the components that are shared between features. Our .aip project is quite complex, so in this moment I'm not sure if only the 6 files I mentioned earlier are affected, or there are some more shared components which might be affected too.

Once more thank you for your efforts :)

Best regards,
Zsolt

Eusebiu
Posts: 4931
Joined: Wed Nov 14, 2012 2:04 pm

Re: IMPORTANT: Some DLLs installed to the incorrect place

Thu Apr 14, 2022 1:05 pm

Hi Zsolt,
I think we can agree that this is a bug in Advanced Installer. My feeling is that me as an AI user configured the .aip just fine:
I've already added this to our list so we will implement an improvement in this matter.
Is there an easy way - maybe directly in the .aip's xml - to get the entire list of the components that are shared between features. Our .aip project is quite complex, so in this moment I'm not sure if only the 6 files I mentioned earlier are affected, or there are some more shared components which might be affected too.
I'm afraid that there is no easy way to find this. You can see the features and their related components in the "FeatureComponent" table displayed based on the build they are added to. If you order them by the component name, you will see if a component is added to more features.

Best regards,
Eusebiu
Eusebiu Aria - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Zsolt Kollarits
Posts: 339
Joined: Fri May 29, 2015 10:36 am

Re: IMPORTANT: Some DLLs installed to the incorrect place

Thu Apr 14, 2022 2:33 pm

Hi Eusebiu,

Thank you for your hint regarding how to find the shared components in our .aip. :)

Also thank you that you will fix that bug.

Best regards,
Zsolt

Eusebiu
Posts: 4931
Joined: Wed Nov 14, 2012 2:04 pm

Re: IMPORTANT: Some DLLs installed to the incorrect place

Tue Apr 19, 2022 11:18 am

You're welcome, Zsolt. Glad to assist.

We will let you know as soon as the fix will be available.

Best regards,
Eusebiu
Eusebiu Aria - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Zsolt Kollarits
Posts: 339
Joined: Fri May 29, 2015 10:36 am

Re: IMPORTANT: Some DLLs installed to the incorrect place

Wed Jun 01, 2022 12:31 pm

Hi Eusebiu,

Do you have any news for this ticket? :) We would like to get this problem fixed in our upcoming releases as it's really causing some troubles for several customers.

Thanks in advance for the info.

Best regards,
Zsolt

Eusebiu
Posts: 4931
Joined: Wed Nov 14, 2012 2:04 pm

Re: IMPORTANT: Some DLLs installed to the incorrect place

Thu Jun 02, 2022 1:07 pm

Hi Zsolt,

I'm afraid that this was not addressed yet. The solution is not straightforward and the development team hasn't decided yet the best way to solve this because they were busy with other issues that they are working on.

I hope that this will be fixed soon. Thank you for your patience!

Best regards,
Eusebiu
Eusebiu Aria - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Catalin
Posts: 6511
Joined: Wed Jun 13, 2018 7:49 am

Re: IMPORTANT: Some DLLs installed to the incorrect place

Fri Jul 22, 2022 1:21 pm

Hello Zsolt,

This has been fixed in version 19.7 of Advanced Installer, released on July 18th, 2022.

Best regards,
Catalin
Catalin Gheorghe - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Zsolt Kollarits
Posts: 339
Joined: Fri May 29, 2015 10:36 am

Re: IMPORTANT: Some DLLs installed to the incorrect place

Wed Jul 27, 2022 8:02 am

Hi Catalin,

Thank you very much for the info, we will test AI 19.7 :)

Best regards,
Zsolt

Catalin
Posts: 6511
Joined: Wed Jun 13, 2018 7:49 am

Re: IMPORTANT: Some DLLs installed to the incorrect place

Thu Jul 28, 2022 11:52 am

You are always welcome, Zsolt! :)

Best regards,
Catalin
Catalin Gheorghe - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Return to “Common Problems”