Page 1 of 1

Build output is in same dir as Add-Remove Icon

Posted: Tue Nov 04, 2008 11:12 am
by jsmith
I'm giving InstallAware 8.01 a try as we search for a replacement for Visual Studio Setup Projects. I have set my Build Output to:

..\\build\\Setup

and also tried

#PROJDIR#\\..\\build\\Setup


What I find is that the output path is relative not to the project directory, but to... the directory where the .ico file I have specified under Project->Add-Remove resides. Why is this? My icon file is at

[Project diretory]\\..\\Windows\\Icons\\Vista\\my_icon.ico

The build output ends up at

[Project directory]\\..\\Windows\\Icons\\build\\Setup


What does the directory where it grabs the icon from have to do with anything? Why does it not recognize a relative path to the project directory?

Posted: Wed Nov 05, 2008 3:19 pm
by jsmith
I think I'm detecting a pattern. The output seems to end up at different places at different times. I've seen it in my home directory under my windows profile. I've also seen it in the project directory. And in the InstallAware directory under Program Files. I haven't changed the path listed under Build -> Output -> Create builds in: -> Custom Folder. It just keeps changing where it outputs to.

I think I have noticed that it seems to like to output to whereever I recently had a file->open dialog opened to in the InstallAware IDE. After opening a dialog file from Program Files\\InstallAware, my next build built to Program Files\\InstallAware. When I opened a file in My Documents, the next build build to my home directory. It doesn't always do this, but it seems to have something to do with it.

Posted: Wed Nov 05, 2008 5:06 pm
by CandiceJones
Actually, relative paths are not supported at all...you should always use full paths. Compiler variables are there to help if you want to relativize folders.

Posted: Thu Nov 06, 2008 9:32 am
by jsmith
Thanks for replying Candice. Unfortunately, using hard-coded full paths is not a reasonable option because the project needs to build on every developer's machine. It can't be expected that everyone checks out his source tree to the same location on his local disk.

Can you tell me more about using Compiler Variables to relativize paths? A specific example woule be great. I tried creating a Compiler Var, $BUILDDIR$, that points to:

#PROJDIR#\\..\\build\\Setup

Then I set my Build->Output to #BUILDDIR#, but this doesn't work. It built to $PROJDIR$\\build\\Setup - ignoring the relative ".."



PS> Is there a way to have the build output window stay visible after the build completes? I'd like to be able to read the build log, but it disappears so quickly...

Posted: Fri Nov 07, 2008 12:46 pm
by jsmith
Candice or anyone else from InstallAware- finding a solution to this problem is crucial to determining if we are going to purchase your product. Please advise as to how I can provide an output path relative to the InstallAware project directory.

Building from the Command Line

Posted: Mon Nov 10, 2008 3:46 am
by ulrichard
Hi jsmith,

You might want to read the section "Building from the Command Line" in the InstallAware help.
If every developer now starts the build with his custom batch file where he sets the compiler variable for the path, everyone can build a new installer.
Instead of a simple batch file, you could also use some sort of script that can generate an absolute path to provide to InstallAware out of the cwd.
I'm using FinalBulider to call the InstallAware build process.

If every developer shall be able to change the installer script, I don't know of a really elegant solution. The obvious but not so nice solution would be, that everyone that want's to modify the script changes the default for the compiler variable and then performs his work.

Maybe someone knows of a better solution?

Rgs
Richard

Posted: Tue Nov 11, 2008 2:57 pm
by MichaelNesmith
As Candice pointed out, you cannot use relative paths - these values are not supported. Instead, you can use one of the following ways:

1. Refactor Paths tool - this will automatically sniff all root paths used across your project and change them in a single click.

2. Compiler Variables - Compiler variables are specified using the form #VARIABLE# and not $VARIABLE$. Every developer can simply keep their own values for these so projects work successfully across every machine.

Note that you cannot use relative paths inside compiler variables either, as previously pointed out.

Re: Build output is in same dir as Add-Remove Icon

Posted: Thu Oct 22, 2015 4:26 pm
by tofutim
Hi, a humble request to support relative paths for Build in Custom Folder - it makes it much cleaner since we source control the IA files

Re: Build output is in same dir as Add-Remove Icon

Posted: Fri Oct 23, 2015 1:11 pm
by FrancescoT
Dear Tofutim,

I suppose it's not easy to release ... anyway, I'll send a note to our team.

Regards