Macy
Posts: 18
Joined: Sun Nov 25, 2007 2:02 am

Evaluation Questions

I have downloaded Advanced Installer this afternoon and have succeeded in creating some merge modules and an install that incorporates them. It was actually pretty painless. I had never done merge modules.

This exercise has left me with some questions:

1) We have several .Net COM Interop dll's that we install in the GAC. I was able to install the dll's and register them for COM Interop with the Files dialog. And I was able to install local files into the GAC. But we don't want those dll's lingering around after we have them in the GAC, so I wondered if you plant to provide support for installing directly into the GAC, and if so, registering for COM Interop at the same time?

2) Other packages that I have evaluated (and the really old one that've used used for production for the last 7 years) provide support for "Include" scripts. This lets us encapsulate a set of common files and actions into a separate file, and then we can easily include that file in any other installs we might build. I didn't find this feature in your package, so that is what let me to creating Merge modules. That seemed to work pretty well, and actually, we have some customers that have been asking us for merge modules instead of the silent install .exe's we've been giving them. Am I takin the right approach?

3) Many of these "merge modules" that I just mentioned encapsulate "optional" features that a user might not want to install. I ddn't fully understand your feature scenario. I was able to create features and subfeatures... so... maybe it was the component structure that I didn't understand. I read the help page on components several times, and I just don't understand how to fill out the properties. I was expecting to have a "matrix" scenario where I have files grouped into components, and the inclusion of any file in a feature implied the entire component got installed. But... my bigger concern here is that I can't see a way to include a merge module as part of a feature. And, I didn't see a way to apply a condition to the installation of a merge module. What am I missing? Can you point me to the right pages of the help docs, or a sample install that provides for the optional installation of merge modules, based upon a users features selection?

Thanks!

By the way... you guys look to have been around a long time, and have a lot of users. But I did what I thought was a pretty thorough search for installer software three months ago, and I did not run across you. I bumped into you today when I was reading the update notes for my automated build software, and they incicated upded support for Advanced Installer, so I followed the link. If you can address item 3 above, I will sure have wished I had found you earlier :)
Cosmin
Posts: 5797
Joined: Tue Jul 10, 2007 6:39 pm
Contact: Website

Hi,

Thank you for your interest in Advanced Installer.
1) We have several .Net COM Interop dll's that we install in the GAC. I was able to install the dll's and register them for COM Interop with the Files dialog. And I was able to install local files into the GAC. But we don't want those dll's lingering around after we have them in the GAC, so I wondered if you plant to provide support for installing directly into the GAC, and if so, registering for COM Interop at the same time?
This can be done by adding the DLLs into a folder in the "Files and Folders" page and setting for them the "Register .Net Assembly For COM Interoperability" option in the "Edit File" dialog.

You will add the same DLLs in the "Assemblies" page and select the "Install in Global Assembly Cache" option. This way the DLLs will be added to the GAC and registered for COM Interoperability at the same time.
2) Other packages that I have evaluated (and the really old one that've used used for production for the last 7 years) provide support for "Include" scripts. This lets us encapsulate a set of common files and actions into a separate file, and then we can easily include that file in any other installs we might build. I didn't find this feature in your package, so that is what let me to creating Merge modules. That seemed to work pretty well, and actually, we have some customers that have been asking us for merge modules instead of the silent install .exe's we've been giving them. Am I takin the right approach?
Yes, using merge modules is a good approach for what you need.
3) Many of these "merge modules" that I just mentioned encapsulate "optional" features that a user might not want to install. I ddn't fully understand your feature scenario. I was able to create features and subfeatures... so... maybe it was the component structure that I didn't understand. I read the help page on components several times, and I just don't understand how to fill out the properties. I was expecting to have a "matrix" scenario where I have files grouped into components, and the inclusion of any file in a feature implied the entire component got installed. But... my bigger concern here is that I can't see a way to include a merge module as part of a feature. And, I didn't see a way to apply a condition to the installation of a merge module. What am I missing? Can you point me to the right pages of the help docs, or a sample install that provides for the optional installation of merge modules, based upon a users features selection?
After you add a merge module in the "Merge Modules" page you can set which feature will contain it.

For example:
- in the "Organization" page you create the feature Merge_Module_1
- you condition the installation of this feature (by using the "Conditional..." button to set the install level of the feature or by using the "SetupTypeDlg" dialog in the "Dialogs" page)
- in the "Merge Modules" page you add a merge module
- you double-click the merge module and set the "Feature" field to "Merge_Module_1"

Now the merge module will be installed only if the feature that contains it will be installed.

You can read more about the "Organization" page here:
http://www.advancedinstaller.com/user-g ... ation.html
http://www.advancedinstaller.com/user-g ... ialog.html

For more information about the "Merge Module" page please see:
http://www.advancedinstaller.com/user-g ... dules.html
http://www.advancedinstaller.com/user-g ... tings.html
I was expecting to have a "matrix" scenario where I have files grouped into components, and the inclusion of any file in a feature implied the entire component got installed.
An Advanced Installer project is organized into Features and Components. A Component contains resources of the installation (files, registry values etc.) and a Feature contains components.

You can move resources between existing components or place them into a new one. Also, Advanced Installer allows you to condition the installation of components and features.

You can read more about Features and Components here:
http://msdn2.microsoft.com/en-us/library/aa368003.aspx

If you have any other questions, don't hesitate to ask.

Regards,
Cosmin
Cosmin Pirvu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
Macy
Posts: 18
Joined: Sun Nov 25, 2007 2:02 am

Thanks

Thank you. I missed the part where a feature could be associated with a MergeModule. Thought their must surely be a way.

I'll explore the component stuff some more. I didn't see where you can make new components. Thanks.

New question... where do I look as regards adding billboards to the dialogs?
Cosmin
Posts: 5797
Joined: Tue Jul 10, 2007 6:39 pm
Contact: Website

Hi,
I didn't see where you can make new components.
In the "Organization" page, for a component that contains multiple resources, you can double-click a resource and select "Move to new component".
New question... where do I look as regards adding billboards to the dialogs?
You can add billboards to a dialog in the "Dialogs" page. You can read more about this here:
http://www.advancedinstaller.com/user-g ... ialog.html

Also, you can see our billboards tutorial:
http://www.advancedinstaller.com/user-g ... ditor.html

Note that this feature is available only for an Enterprise project.

Regards,
Cosmin
Cosmin Pirvu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
Macy
Posts: 18
Joined: Sun Nov 25, 2007 2:02 am

Couple more questions

I've got just a couple more questions. I've been able to build some pretty flexible test installs and I'm ready to purchase.

I'm installing files into a temporary folder and then adding them to the GAC. When the install is done, I want to delete that folder. How do I do this?

During testing, I create an install, run it on another machine, and then tweak it. When I put the new install onto the same machine w/o uninstalling, it forces me to manually uninstall. I was expecting at least a Modify/Repair/Remove dialog, and was really hoping that it would just update the prior install or silently uninstall it and install new. Is there a setting that I don't have right?

And, when I install items into the GAC, and then run uninstall, they are still in the GAC. Shouldn't they be removed?
Cosmin
Posts: 5797
Joined: Tue Jul 10, 2007 6:39 pm
Contact: Website

Hi,
I'm installing files into a temporary folder and then adding them to the GAC. When the install is done, I want to delete that folder. How do I do this?
Please note that after the files are registered in the GAC they are removed from their installed location. For example, if you place them in "Application Folder" and in the "Assemblies" page you have the "Install in Global Assembly Cache" option checked, then at the end of the installation the files will be present only in the GAC (the files will not be in "Application Folder").

However, if you need to remove a folder you can do it with a custom action. There is a similar discussion on the forum, please take a look:
http://www.advancedinstaller.com/forums ... ove+folder
During testing, I create an install, run it on another machine, and then tweak it. When I put the new install onto the same machine w/o uninstalling, it forces me to manually uninstall. I was expecting at least a Modify/Repair/Remove dialog, and was really hoping that it would just update the prior install or silently uninstall it and install new. Is there a setting that I don't have right?
This is a normal behavior of Windows Installer.
After you install a package, this package can be uninstalled in two ways:

1) by using the MSI that installed it (by launching it from the Windows cache in "Add/Remove Programs" in Control Panel or by launching the MSI file directly). In this case the installation will go into Maintenance (Modify, Repair and Remove options).

2) by using the automated upgrade feature (the current installation will be uninstalled by another MSI). I have explained this feature in another post, please take a look:
http://www.advancedinstaller.com/forums ... de+feature

In you case, you are encountering this behavior because you modified (updated) the MSI without increasing the version and generating a new Product Code (answer "Yes" after increasing the version in the "Product Details" page).
And, when I install items into the GAC, and then run uninstall, they are still in the GAC. Shouldn't they be removed?
.Net 2.0 assemblies requires the "ProcessorArchitecture" attribute in order to be uninstalled. Add this attribute to the "Attributes" list of the "Assemblies" properties page with the proper value (X86, Amd64, MSIL, etc).

This attribute corresponds to the platform for which the assembly has been built and has one of the following values:

Amd64 -- A 64-bit AMD processor only.
IA64 -- A 64-bit Intel processor only.
MSIL -- Neutral with respect to processor and bits-per-word.
None -- An unknown or unspecified combination of processor and bits-per-word.
X86 -- A 32-bit Intel processor, either native or in the Windows on Windows (WOW) environment on a 64-bit platform
http://msdn2.microsoft.com/en-us/librar ... cture.aspx

Regards,
Cosmin
Cosmin Pirvu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
Macy
Posts: 18
Joined: Sun Nov 25, 2007 2:02 am

Thank you

Thank you.

Sold!

Return to “Common Problems”