Bogdan wrote:Hi,
First of all, you should know that launching an MSI for install with a custom action is not recommended because Windows Installer does not
accept to install two packages on the same time. For this we provide a much cleaner support, the feature-based prerequisites.
We have a functioning install based on static directory structures, complete with uninstall - we're just trying to incorporate this into the dynamic environment of the TFS build server now. We have built appropriate logic to handle the second MSI as a secondary install package using custom actions.
Bogdan wrote:
All you need to do is to add your EXE as a feature-based prerequisite, add all its referred files next to it, and Advanced Installer will build
a main MSI file that installs your application and this prerequisite.
Unfortunately, the MSI contains references to the DLLs being installed as part of the main AI install package, thus the COMPlus install must occur as a post install step.
Bogdan wrote:
The prerequisite needs a static source for the prerequisite that will be included in the project. For this you can use our pre-build events support
from Media page to copy the files required from the location generated by TFS in the static folder from where Advanced Installer will pick them up
and include in the main package.
That's unrealistic in a TFS based environment where multiple builds are occuring on a build server at the same time - EVERYTHING needs to be contained within the build root folder, thus the build path needs to be dynamic, or as I've coded, relative to the AIP file.
Bogdan wrote:
In what regards the manual changes performed on path variables I recommend reverting them all, or if you have a copy of the aip file before you
did those changes better start again from that. Manual changes in the project are often the source for incorrect package behavior, and we cannot always track the
problem. Since you have another much cleaner option(explained above) I recommend to revert all the changes mentioned below.
Best regards,
Bogdan
The GUI and command line would not perform the changes required to accept the relative paths...it kept forcing back absolute paths, which can not exist in a TFS environment. My only option was direct editing of the XML, setting ...
Code: Select all
<DOCUMENT Type="Advanced Installer" CreateVersion="9.7" version="9.8" Modules="enterprise" RootPath="..\..\Binaries\buildbase" .....
Code: Select all
<COMPONENT cid="caphyon.advinst.msicomp.AppPathsComponent">
<ROW Name="Source" Path="..\..\Binaries\buildbase" Type="2" Content="0"/>
</COMPONENT>
and then referencing all files (other than the two that I've mentioned) as
Code: Select all
..... SourcePath="<Source>\APPLICATION\filename.ext" ....
If we have to limit ourselves to hard coded paths for everything, then we limit ourselves to a single build execution on the build server...
Any other suggestions?